wpf – MVVMObservableCollection问题

wpf – MVVMObservableCollection问题,第1张

概述我有以下XAML: <Grid x:Name="LayoutRoot"> <sdk:DataGrid AutoGenerateColumns="True" Margin="46,38,0,40" x:Name="FamilyListGrid" HorizontalAlignment="Left" Width="475" ItemsSource="{B 我有以下XAML:

<GrID x:name="LayoutRoot">        <sdk:DataGrID autoGenerateColumns="True" margin="46,38,40" x:name="FamilyListGrID" HorizontalAlignment="left" WIDth="475"                ItemsSource="{Binding FamilyList}"               SelectedItem="{Binding SelectedFamily,Mode=TwoWay}" />    </GrID>

Binding中使用的我的FamilyList属性是我的视图模型类中的实体的ObservableCollection.我发现我需要在我的FamilyList集合的setter中实现INotifyPropertyChanged,否则绑定不起作用.我的理解是ObservableCollection已经实现了这一点.如果是这种情况,为什么我需要实现notify属性?

如果有帮助,这是我的FamilyList属性定义:

private ObservableCollection<Services.Family> familyList;    public ObservableCollection<Services.Family> FamilyList    {        get { return familyList; }        private set         {             familyList = value;            NotifyPropertyChanged("FamilyList");        }    }
解决方法 的ObservableCollection< T>实现INotifyCollectionChanged,它通知已注册的事件处理程序有关集合中的更改(添加,删除,排序项).但是,DataGrID必须知道您的某个业务对象的属性是否已更改为更新网格中的值.为此,需要INotifyPropertyChanged. 的ObservableCollection< T>实现也INotifyCollectionChanged.但是,如果集合的属性已更改,则只能用于通知.没有机制让集合检测您的业务对象是否已更改(如果它已经更改,它将注册到您的业务对象的INotifyCollectionChanged :). 总结

以上是内存溢出为你收集整理的wpf – MVVM / ObservableCollection问题全部内容,希望文章能够帮你解决wpf – MVVM / ObservableCollection问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存