我是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方式的正确方法是什么?
答案 0 :(得分:1)
在理想世界中,您可以将Model
个对象包装在自己的ViewModel
中,以便ObservableCollection
包含ViewModel
类型这些bool
Model
属性已转换为是/否string
属性。
但是,在实用世界中,如果您不编辑这些值,我不会打扰,除非要注意,如果您要公开其中许多bool
属性,拥有数千行,在DataGrid
每个属性和行实例化Converter
时,渲染网格会受到性能影响。
答案 1 :(得分:0)
使用转换器并不是错误的方法。根据我的建议,您应该按照现在的方式绑定数据,并在视图中创建并使用 BoolToStringConverter 将布尔值转换为是或否。