Избегание ненужного набора аксессоров для TwoWay DataBinding к Collection - PullRequest
0 голосов
/ 21 октября 2011

Я связываю 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 никогда не вызывается и не используется, но требуется для привязки данных TwoWay. Содержащийся класс Model инициализирует коллекцию при создании, поскольку требуется перевести объект в допустимое состояние. Есть ли способ обойти этот ненужный метод доступа или есть альтернативы этому?

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Установите режим = OneWay, и вам не нужен набор.

0 голосов
/ 21 октября 2011

OneWay занимается Getter, а OneWayToSource - Setter.Конечно, TwoWay имеет дело с Getter и Setter.

Как вы можете изменить ItemsSource of DataGrid в View как Text of TextBox?Я думаю, что это невозможно, поэтому вам не нужно устанавливать привязку TwoWay.Измените на OneWay и удалите сеттер.

0 голосов
/ 21 октября 2011

Если двустороннее связывание используется в обоих направлениях, то оно используется, просто не вами явно в коде.Насколько я знаю, вы не можете обойтись без объявления этого.То же самое с объявлением любого свойства чтения-записи.По какой-то причине вы должны записать их как

Public Type Property
{
    get;
    set;
}

MS не хотела, чтобы вам было слишком легко.=)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...