Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# EF模型项资源更新后的部分树视图刷新_C#_Wpf_Treeview_Refresh - Fatal编程技术网

C# EF模型项资源更新后的部分树视图刷新

C# EF模型项资源更新后的部分树视图刷新,c#,wpf,treeview,refresh,C#,Wpf,Treeview,Refresh,我有一个实体框架模型和与模型绑定的TreeView 在构造函数中: Context.TestCategory.Load(); 我的树视图: ........................................ 其他项目 ........................................ 更新ItemsSource中的项目后,我需要更新相关的TreeView分支,最好的方法是什么 我不确定直接将ItemsSource绑定到上下文属性是一件很好的事情 绑定应该做的是绑

我有一个实体框架模型和与模型绑定的TreeView

在构造函数中:

Context.TestCategory.Load();
我的树视图:


........................................
其他项目
........................................

更新ItemsSource中的项目后,我需要更新相关的TreeView分支,最好的方法是什么

我不确定直接将
ItemsSource
绑定到上下文属性是一件很好的事情

绑定应该做的是绑定到一个属性,该属性在发生更改时可以执行
RaisePropertyChanged
,然后UI元素将根据需要进行更新。我使用MVVM,因此我的绑定都来自ViewModel,它是视图的datacontext,并且实现了
INotifyPropertyChanged
接口。然后,我的属性设置器可以如下所示:

    private List<TestCategories>_myItemSourceList;
    public List<TestCategories> MyItemSourceList
    {
        get { return _myItemSourceList; }
        set
        {
            if (value != _myItemSourceList)
            {
                _myItemSourceList= value;
                RaisePropertyChanged(() => MyItemSourceList);
            }
        }
    }
私有列表\u myItemSourceList;
公共列表MyItemSourceList
{
获取{return\u myItemSourceList;}
设置
{
如果(值!=\u myItemSourceList)
{
_myItemSourceList=值;
RaisePropertyChanged(()=>MyItemSourceList);
}
}
}
XAML看起来像

<TreeView x:Name="DbTree" ItemsSource="{Binding MyItemSourceList}">

显然,由于您没有使用MVVM,您的代码将略有不同,但原则仍然是:将
ItemSource
绑定到可以
RaisePropertyChanged
的属性

编辑:My RaisePropertyChanged在Prism框架内,因此使用lambda,但“standard”使用的字符串如下所示
RaisePropertyChanged(“MyItemSourceList”)