避免不必要的集合双向数据绑定的集合访问器

本文关键字:集合 数据绑定 访问 不必要 | 更新日期: 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在视图像文本框的文本?我认为这是不可能的,所以你不需要设置双向绑定。