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

本文关键字:观察 集合 存在 绑定 何绑定 | 更新日期: 2023-09-27 18:33:36

大家好,我正在从事一个通过telnet配置网络设备的项目,我正在使用C# Wpf。问题是我有一个可观察集合,我想显示可观察集合中存在的项目数,但它没有显示.我尝试了以下:

 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"
        />

现在它没有显示任何东西.任何帮助都将是非常可观的:)

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

最简单的方法是简单地绑定到 vlan。计数(在我的示例中,我使用了文本框,但textBlock不需要OneWay)。 不需要额外的属性或更改属性。 添加到集合将自动更新计数。

<TextBox Text="{Binding vlan.Count, Mode=OneWay}" />

<TextBlock Text="{Binding vlan.Count}" />

绑定不知道何时更新目标。 您需要实现 INotifyPropertyChanged,订阅 .CollectionChanged 并在 VLAN(计数)更改时引发 PropertyChanged 事件。

您可以在 ObservableCollection 之上使用 ListCollectionView。

在视图模型中,将它们定义为:

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

我希望这有帮助!