Двусторонняя привязка данных, Silverlight и свойство нестандартного управления / зависимости - PullRequest
2 голосов
/ 25 октября 2010

Если я создаю свойство зависимости для пользовательского элемента управления, которое принимает IEnumerable<T>.

Например, с IEnumerable<string>:

public static readonly DependencyProperty MyCollectionProperty =
    DependencyProperty.Register("MyCollection", typeof(IEnumerable<string>), typeof(MyControl), new PropertyMetadata(new List<string>()));

public IEnumerable<string> MyCollection
{
     get { return (IEnumerable<string>)GetValue(MyCollectionProperty); }
     set { SetValue(MyCollectionProperty, value); }
}

Если я связываю данные с ObservableCollection<T>или <string> в этом случае к нему.Заботится ли Silverlight о двустороннем связывании данных для меня?

1 Ответ

0 голосов
/ 25 октября 2010

С MSDN"В частности, если вы используете OneWay или TwoWay (например, вы хотите, чтобы ваш пользовательский интерфейс обновлялся при динамическом изменении свойств источника), вы должны реализовать подходящий механизм уведомления об изменении свойств, напримертак как интерфейс INotifyPropertyChanged "

ObservableCollection<T> реализует INotifyPropertyChanged для вас.IEnumerable<T> нет.Если вам нужна простая двусторонняя привязка, просто свяжитесь с ObservableCollection<T> и измените UpdateSourceTrigger на PropertyChanged.XAML:

<ItemSource = "{Binding Path=MyCollection, UpdateSourceTrigger=PropertyChanged}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...