繁体   English   中英

用BindingList更新datagrid

[英]updating datagrid with BindingList

我一直在研究BindingList和observablecollection和List之间的区别。 从我阅读的内容来看,似乎BindingList是唯一的通知类型,它会通知其中的对象是否更改了其属性之一。 我无法使它正常工作。

我在ViewModel上有一个名为Matches的属性,该属性返回从另一个类的CarMatch对象列表中创建的BindingList。 (汽车m_Cars = new Cars();)视图上的我的DataGrid绑定到VM中的此Matches属性。

public BindingList<CarMatch> Matches
{ 
    get
    {
        Return new BindingList<CarMatch>(m_Cars.Matches);  
    }
}

现在,在代码中,我更改了CarMatch对象的属性之一,例如:..false。 匹配[0] .automaticTrans = true。 我想在DataGrid中看到这种变化。 没有在CarMatch类内部实现INotifyPropertyChanged,有没有办法从视图模型更新数据网格? 在Matches上使用INotifyPropertyChanged似乎没有做到。 关于这一点,我只是不了解,可以使用一个示例进行查看。

CarMatch (不Matches )必须实现INotifyPropertyChanged 但是请考虑使用ObservableCollection除非您确实需要BindingList提供的一些其他方案:使用ObservableCollectionINotifyPropertyChanged是免费提供的。 而且,更重要的是, BindingList不能很好地扩展

尝试

dataGrid.Items.Refresh();

但是请记住,如果您有大量数据,并且在短时间内多次调用,则此调用成本很高。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM