将可观察的集合属性绑定到WPF中的标签

时间:2018-08-18 07:49:15

标签: c# wpf data-binding

我有以下名为SalesOrderCollection的可观察集合

   private static ObservableCollection<SalesOrder> _salesOrderCollection = new ObservableCollection<SalesOrder>();

 public static ObservableCollection<SalesOrder> SalesOrderCollection
        {
            get { return _salesOrderCollection; }
            set
            {
                _salesOrderCollection  = value;
            }
        }

我正在分配这样的值:

SalesOrder order = new SalesOrder();
            order.ItemSubTotal = 234;
            order.TotalTaxes = 12;
            order.TOTAL = 12345;

            SalesOrderCollection.Add(order);

在视图中,我将其设置为标签:

 <Label Content="{Binding Path=TOTAL, UpdateSourceTrigger =PropertyChanged}"/>

但是标签为空。关于我在这里做错什么的任何建议?

1 个答案:

答案 0 :(得分:0)

首先,您绑定不正确-标签不应绑定到集合中的特定项目。相反,您应该使用列表控件显示ObesrvableCollection的内容,然后将列表控件中的选定项绑定到视图模型上的属性。然后,标签还应该绑定到包含所选对象的相同属性。

如果您坚持要对ObservableCollection中的特定项目进行索引绑定,则此语法应为您完成:

<Label Content="{Binding Path=SalesOrderCollection[0].TOTAL}"/>

Here是一个示例。 只是另一个指针:我不确定为什么将SalesOrderCollection属性设置为静态-这看起来像是一些可能令人讨厌的代码的开头。