Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
属性更改时c#ListView未更新_C#_Wpf_Listview_Inotifypropertychanged - Fatal编程技术网

属性更改时c#ListView未更新

属性更改时c#ListView未更新,c#,wpf,listview,inotifypropertychanged,C#,Wpf,Listview,Inotifypropertychanged,当更多数据添加到ObservableCollection时,我的UI没有更新。控制台输出表示发生了“System.NullReferenceException”类型的第一次意外异常。我应该改用Inotifycollectionchanged吗?下面是一些代码: <ListView x:Name="ListView2" ItemsSource="{Binding Source={x:Static d:GrabUserConversationModel._Conversation}, Upda

当更多数据添加到ObservableCollection时,我的UI没有更新。控制台输出表示发生了“System.NullReferenceException”类型的第一次意外异常。我应该改用Inotifycollectionchanged吗?下面是一些代码:

<ListView x:Name="ListView2" ItemsSource="{Binding Source={x:Static d:GrabUserConversationModel._Conversation}, UpdateSourceTrigger=PropertyChanged}" SelectionChanged="ListView1_SelectionChanged">
MainWindow.xaml.cs

public partial class MainWindow 
{

    static GrabUserConversationModel grabUserConversationModel;


    public MainWindow()
    {
        InitializeComponent();
        ...

    }

  static void AddData()
    {
   grabUserConversationModel.Conversation.Add(new UserConversationModel { Name = "TestName" });

    }
GrabUserConversationModel.cs

public class UserConversationModel : INotifyPropertyChanged
{
    public UserConversationModel()
    {
    }

    public string Name
    { get; set; }



    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string Obj)
    {
        if (PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(Obj));
        }
    }
}
class GrabUserConversationModel
{

    public static ObservableCollection<UserConversationModel> _Conversation = new ObservableCollection<UserConversationModel>();


    public ObservableCollection<UserConversationModel> Conversation
    {
        get { return _Conversation; }
        set { _Conversation = value; }
    }
     ...
class-GrabUserConversationModel
{
公共静态ObservableCollection_Conversation=新ObservableCollection();
公开收集对话
{
获取{return\u Conversation;}
设置{u Conversation=value;}
}
...

您的属性
ObservableCollection对话
未实现
INotifyPropertyChanged

public ObservableCollection<UserConversationModel> Conversation
{
    get { return _Conversation; }
    set { _Conversation = value; OnPropertyChanged("Conversation");}
}
公共可观察收集对话
{
获取{return\u Conversation;}
设置{u Conversation=value;OnPropertyChanged(“Conversation”);}
}

ObservableCollection
确实实现了
INotifyPropertyChanged
。显然,我的意思是在PropertyChanged上使用它的方法:)这个解决方案目前的问题是,如果你看他的绑定,他不是绑定到那个属性,而是绑定到静态字段。在更一般的范围内,问题是ot正在处理MVVM模式:)在该绑定上…属性的名称是错误的,我认为(您绑定到的是字段而不是属性)请尝试删除绑定上的
updateSourceRigger
集。让WPF钩住集合并捕获集合更改,就像默认情况下一样。