【问题标题】:How to calculate Unbound Values in GridView or Template Column如何计算 GridView 或模板列中的未绑定值
【发布时间】:2012-06-29 03:45:52
【问题描述】:

我想要达到的效果如下:

在上图中,您可以看到绑定到示例 ObservableItemsCollection ocSOI 的 DataGrid;

Code , Description, Total, Delivered 列分别绑定到ocSOI.Code, ocSOI.Description, ocSOI.TotalQty, ocSOI.DeliveredQty

I am trying to Achieve : 当用户在'This Delivery' 文本框中输入值时,我想重新计算列'Remaining Qty'DomainContext 之前的SubmitChanges() 的值,我想更改'ocSOI.DeliveredQty' 的值添加当前以ocSOI.DeliveredQty = ocSOI.DeliveredQty + ThisDelivery 的值传递。

我非常沉迷于算法,我迷失在如何实现这一目标的概念中。我真的把我的头拉出来了,是我无法理解的设计缺陷吗.....不要......迷路了......请帮助.!!!

附言SalesOrderItem 实体包含 ID, Code, Description, TotalQty, DeliveredQty 属性。

附言我在我的视图模型中使用 MVVM-Light

【问题讨论】:

  • ThisDeliveryRemaining 存储在 ViewModel 中的什么位置?
  • @Rachel - 目前这是问题的一部分,不知道如何添加这些值以及将它们放置在视图模型中的什么位置。

标签: silverlight algorithm c#-4.0 mvvm-light radgridview


【解决方案1】:

我会让SalesOrderItem 包含ThisDeliveryRemaining 属性

每条记录都应该代表客户可以订购的商品,因此应该包含所有需要的信息。

您可以使数据项包含网格中每一列的单独属性

public class SalesOrderItem
{
    /* Not writing out full Property Change for sake of simplicity */
    public string Code { get; set; }
    public string Description { get; set; }
    public int Quantity { get; set; }
    public int Delivered { get; set; }
    public int ThisDelivery { get; set; }
    public int Remaining { get; set; }

    // When ThisDelivery changes, adjust Remaining value
}

或者您可以将您的项目属性集中在一个对象下,并在您的SalesOrderItem 中包含该项目的属性

public class SalesOrderItem
{
    /* Not writing out full Property Change for sake of simplicity */
    public ItemModel Item { get; set; }
    public int Delivered { get; set; }
    public int ThisDelivery { get; set; }
    public int Remaining { get; set; }

    // When ThisDelivery changes, adjust Remaining value
}

【讨论】:

  • 是的,第一个选项,我猜到了,但想避免在那里再有两个属性。但我想这是最简单和最快的方法....感谢您的回答,我会选择选项一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 2014-09-09
  • 1970-01-01
  • 2014-07-05
相关资源
最近更新 更多