使用 WPF 将 ObservableCollection.Count 绑定到标签

2023-11-27

我有一个简单的Label这应该包括界限.Count某财产的价值ObservableCollection.

问题是,结果始终为 0(零)。相同的属性绑定到 DataGrid,它可以完美地工作,甚至可以在集合中发生更改时进行更新。

我在这里做错了什么?

这是我的代码:

<Label ContentStringFormat="Members: {0}">
    <Label.Content>
        <Binding Path="MembersList.Count" Mode="OneWay" UpdateSourceTrigger="Default" />
    </Label.Content>
</Label>

该物业看起来像:

public static ObservableCollection<Mitglied> MembersList { get; set; }

我只能假设您实际上没有向集合中添加任何项目。如果你认为你是,你就必须给我们一个更完整的重现。

这对我来说非常有效:

主窗口.xaml

<Window x:Class="SO18124125.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <Button x:Name="addButton">Add</Button>
        <Label>
            <Label.Content>
                <Binding Path="Items.Count" Mode="OneWay" UpdateSourceTrigger="Default"/>
            </Label.Content>
        </Label>
    </StackPanel>
</Window>

MainWindow.xaml.cs

namespace SO18124125
{
    using System.Collections.ObjectModel;
    using System.Windows;

    public partial class MainWindow : Window
    {
        private static readonly ObservableCollection<string> items = new ObservableCollection<string>();

        public MainWindow()
        {
            InitializeComponent();

            this.DataContext = this;

            this.addButton.Click += delegate
            {
                items.Add("foo");
            };
        }

        public static ObservableCollection<string> Items
        {
            get { return items; }
        }
    }
}

顺便说一句,这更简洁:

<Label Content="{Binding Items.Count}" ContentStringFormat="Members: {0}"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 WPF 将 ObservableCollection.Count 绑定到标签 的相关文章

随机推荐