gpt4 book ai didi

c# - 绑定(bind)到集合计数

转载 作者:太空狗 更新时间:2023-10-30 01:21:27 26 4
gpt4 key购买 nike

我正在尝试创建一个小按钮,它通过绑定(bind)显示自定义类的实际 Count 属性。这是我的自定义类代码片段:

public sealed class Counter : IEnumerable<MyClass>
{
private List<MyClass> m_Collection;

public Int32 Count
{
get { return m_Collection.Count; }
}

...

这是我的窗口代码片段:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
m_Counter = new Counter();
}

这是我的主窗口的 XAML 片段:

<Window ... DataContext="{Binding RelativeSource={RelativeSource Self}}">
...
<Button Content="{Binding Path=m_Counter.Count}" Height="40" Width="40"/>

嗯...我做错了什么?

最佳答案

你应该实现 INotifyPropertyChanged在 Counter 上,并在修改 m_Collection

时以 Count 作为属性名称引发 PropertyChanged

有点像

public sealed class Counter : IEnumerable<MyClass> , INotifyPropertyChanged
{
private List<MyClass> m_Collection;

public Int32 Count
{
get { return m_Collection.Count; }
}

public void Add(MyClass item)
{
m_Collection.Add(item);
if (PropertyChanged != null)
PropertyChanged(null, new PropertyChangedEventArgs("Count"));
}

public event PropertyChangedEventHandler PropertyChanged;

您可能必须为所有 List 突变事件触发它。

更简单的事情是做类似的事情

 public sealed class Counter2 : IEnumerable<MyClass>
{
private ObservableCollection<MyClass> m_Collection = new ObservableCollection<MyClass>();

public ObservableCollection<MyClass> Collection
{
get
{
return m_Collection;
}
}

}

并在 XAML 中绑定(bind)到 Collection.Count

关于c# - 绑定(bind)到集合计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com