c# - 如何更新绑定(bind)到 WPF 中的集合的 ListView 项?

标签 c# .net wpf data-binding listview

在 WPF 中,我在代码隐藏中有一个绑定(bind)到 ObservableCollection 的 ListView。我有工作代码,可以通过更新集合在列表中添加和删除项目。

我有一个“编辑”按钮,它会打开一个对话框并允许用户编辑所选 ListView 项目的值。但是,当我更改项目时, ListView 不会更新。我假设这是因为我实际上并没有从集合中添加/删除项目,而只是修改其中一个项目。

如何告诉 ListView 它需要同步绑定(bind)源?

最佳答案

您需要在项目类上实现 INotifyPropertyChanged,如下所示:

class ItemClass : INotifyPropertyChanged
{
    public int BoundValue
    {
         get { return m_BoundValue; }
         set
         {
             if (m_BoundValue != value)
             {
                 m_BoundValue = value;
                 OnPropertyChanged("BoundValue")
             }
         }
    }

    void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    int m_BoundValue;
}

关于c# - 如何更新绑定(bind)到 WPF 中的集合的 ListView 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1849236/

相关文章:

c# - 更改 WPF 中的日历控件

c# - 排序列表和并行 Linq 查询

c# - 将 C++(处理 Corona)函数转换为 C#

c# - 在 EF 6 中找不到 HasOne

c# - 性能和内存优化(类与结构)

c# - 如何将字节 block 读入结构

wpf - Prism 应用程序关闭时不退出

c# - 在 C# 中合并命名空间

c# - 有没有办法同步使用 MongoDB C# 驱动程序

WPF:将主窗体属性传递给用户控件