大家好我正在研究一个通过telnet配置网络设备的项目,我正在使用C#Wpf。问题是我有一个Observable Collection,我想显示可观察集合中存在的项目数,但它没有显示。我试过以下:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
public int Vlans
{
// Retreive value from Configuration Library
get
{
return this.vlan.Count;
}
}
XAML是:
<TextBlock Margin="3,0"
Style="{StaticResource SummaryValues}"
Text="{Binding Path=Vlans}"
Visibility="Visible"
/>
现在它没有显示任何内容。任何帮助都会非常明显:)
答案 0 :(得分:3)
最简单的是简单地绑定到vlan.Count(在我的示例中我使用了文本框,但textBlock不需要OneWay)。无需额外的属性或INotifyPropertyChanged。添加到集合将自动更新计数。
<TextBox Text="{Binding vlan.Count, Mode=OneWay}" />
或
<TextBlock Text="{Binding vlan.Count}" />
答案 1 :(得分:1)
绑定不知道何时更新目标。您需要实现INotifyPropertyChanged,订阅.CollectionChanged并在Vlans(计数)更改时引发PropertyChanged事件。
答案 2 :(得分:0)
您可以在ObservableCollection顶部使用ListCollectionView。
在ViewModel中,将它们定义为:
ObservableCollection<VLANSPropertyClass> vlan;
public System.Windows.Data.ListCollectionView CountingView { get; private set; }
然后,将集合初始化为ObservableCollection:
CountingView = new System.Windows.Data.ListCollectionView(vlan);
在你的xaml中,绑定到集合的Count属性:
<TextBlock Margin="5" Height="35" Width="50" Text="{Binding CountingView.Count}" />
我希望这有帮助!