避免不必要的集合双向数据绑定的集合访问器
本文关键字:集合 数据绑定 访问 不必要 | 更新日期: 2023-09-27 18:12:13
我将一个DataGrid绑定到一个ObservableCollection
<DataGrid ItemsSource="{Binding Path=MyCollection, Mode=TwoWay}">
视图模型中的属性如下:
public ObservableCollection<MyType> MyCollection
{
get { return this.Model.Collection; }
set { /* Empty but needed for data binding */ }
}
MyCollection
的set访问器永远不会被调用或使用,但它是双向数据绑定所需要的。所包含的Model类在构造时初始化Collection,因为需要将对象置于有效状态。是否有办法绕过这个不必要的访问器,或者是否有其他替代方法?
设置Mode=OneWay,你就不需要Set了。
如果双向绑定被以两种方式使用,那么它就被使用了,只是没有在代码中被显式地使用。据我所知,你不能逃避申报。与声明任何读写属性相同。不管出于什么原因,你必须把它们写成
Public Type Property
{
get;
set;
}
MS不想让你太容易。div =)
OneWay关注的是Getter而OneWayToSource关注的是Setter。当然,TwoWay关心的是Getter和Setter。
从这个角度来看,你如何改变ItemsSource的DataGrid在视图像文本框的文本?我认为这是不可能的,所以你不需要设置双向绑定。