如何绑定可观察集合以查看可观察集合中存在的项目数?

时间:2014-12-08 13:53:53

标签: c# wpf xaml observablecollection

大家好我正在研究一个通过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"
        />

现在它没有显示任何内容。任何帮助都会非常明显:)

3 个答案:

答案 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}" />

我希望这有帮助!