更新绑定到从属属性的UI

时间:2015-06-12 14:49:00

标签: c# mvvm viewmodel

我有几个属性返回依赖于另一个属性值的值。更新绑定到依赖属性的UI的最佳方法是什么?请参阅下面的示例,当Children集合中的Quantity更改时,如何更新绑定到Parent对象的TotalQuantity属性的UI元素?

unsigned char *myString = "Here is a string"; 

1 个答案:

答案 0 :(得分:0)

当您实例化ObservableCollection时,您需要订阅CollectionChanged事件。

Children.CollectionChanged += Children_CollectionChanged;

当从集合中添加/删除项目时,将调用此方法。您只需要通知TotalQuantity已更改。

void Children_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
    OnPropertyChanged("TotalQuantity");
}

如果您需要在孩子更改时更新用户界面上的TotalQuantity属性,那么您只需订阅子{{1}事件。

因此,当您项添加到集合中时,订阅该事件:

PropertyChanged

在您的事件处理程序中,您可以测试以查看哪些属性已更改。

Child myChild = new Child(); //Just an example, but you get the idea
myChild.PropertyChanged += myChild_PropertyChanged;

或者,您可以致电void myChild_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "Quantity") OnPropertyChanged("TotalQuantity"); } ,而无需检查您是否为坏蛋。但我不推荐它,以防你的模型在未来获得更多属性。

在您从收集中移除儿童之前,不要忘记取消订阅该活动。