WPF MVVM - 将DataGrid绑定到Model的ObservableCollection

时间:2016-05-03 08:09:08

标签: wpf mvvm datagrid observablecollection

我是WPF MVVM的新手,如果我错误地理解了MVVM概念,请原谅我。

我的视图中有DataGrid,我已将ItemsSource绑定到ViewModel中的ObservableCollection<M>M类是Model类。但是,M类具有bool属性,这些属性将作为"Yes/No"字符串显示在DataGrid中。

目前,我使用转换器将bool值转换为string。但是,ViewModel向View公开模型列表(ObservableCollection)只是错误。我还read在MVVM中,转换应该在ViewModel上完成。那么,为DataGrid实现MVVM方式的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

理想世界中,您可以将Model个对象包装在自己的ViewModel中,以便ObservableCollection包含ViewModel类型这些bool Model属性已转换为是/否string属性。

但是,在实用世界中,如果您不编辑这些值,我不会打扰,除非要注意,如果您要公开其中许多bool属性,拥有数千行,在DataGrid每个属性和行实例化Converter时,渲染网格会受到性能影响。

答案 1 :(得分:0)

使用转换器并不是错误的方法。根据我的建议,您应该按照现在的方式绑定数据,并在视图中创建并使用 BoolToStringConverter 将布尔值转换为是或否。