绑定到DataContext中的项目计数

Org*_*ey 24 wpf binding

我想绑定到我的DataContext中的Count /项目数量.

我有一个对象,让我说有List<address>一个属性的人.我想显示该人的地址数量,即:5或6或任何情况.

我已经尝试{Binding Path=address#.Count}过其他一些但是看起来似乎没有用.

任何帮助将不胜感激,谢谢.

Eri*_*sen 28

您需要绑定属性的名称,而不是其类型.

C#:

public class Person
{
    ...
    public List<address> Addresses { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

XAML:

{Binding Addresses.Count}
Run Code Online (Sandbox Code Playgroud)

假设你DataContext是一个类型的对象Person.


Rob*_*ney 18

正如tehMick所说,你可以使用路径进行绑定Addresses.Count.

但请注意,除非AddressesObservableCollection<address>实现INotifyCollectionChanged,否则添加和删​​除地址的其他类型不会影响初始显示后UI中显示的数字.如果需要,您需要在视图模型中更改集合的类型(这是最简单的),或者在视图模型中实现公开计数的属性,并在PropertyChanged每次添加或删除地址时引发事件.

编辑

我喜欢读一个答案,想着,"嘿,那不对,"然后意识到我写了它.

如果绑定到刚刚实现的对象,INotifyCollectionChanged则在集合中添加或删除项目时,UI中的计数不会更改.该对象必须在属性更改时实现INotifyPropertyChanged并引发.PropertyChangedCount

幸运的是,ObservableCollection<T>这样做.所以,我的回答是不是那个错.