У меня есть пользовательский элемент управленияTwoWay привязки между свойства зависимостей таможенного контроля и ViewModel
class SearchComboBox : ComboBox, INotifyPropertyChanged
{
public static readonly DependencyProperty ChoosenItemProperty = DependencyProperty.Register(
"ChoosenItem",
typeof(ISearchable),
typeof(SearchComboBox))
public ISearchable ChoosenItem
{
get
{
return (ISearchable)GetValue(ChoosenItemProperty);
}
set
{
SetValue(SearcherProperty, value);
}
}
private void SearchComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selected = this.SelectedItem as ISearchable;
ChoosenItem = selected;
}
}
В XAML я связать свою кодовую свойство ViewModel:
<controls:SearchComboBox ChoosenItem="{Binding SearchableAuthor, Mode=TwoWay}" Width="219"/>
И VM свойство связывать:
public ISearchable SearchableAuthor
{
get
{
return searchAuthor;
}
set
{
searchAuthor = value;
OnPropertyChanged("SearchableAuthor");
}
}
Когда я изменяю ChoosenItem
в пользовательском управлении SearchableAuthor
из VM chan ges тоже, но когда я пытаюсь изменить SearchableAuthor
, ChoosenItem
остается неизменным. Как обновить это свойство из ViewModel?
Вы уверены, что выбрали 'var selected'? Кроме того, это ошибка типовой дополнительной скобки: 'SetValue (ChoosenItemProperty, (ISearchable)'? Что такое 'SetValue' btw? –
@FirstStep Да, я попытался заменить' ISearchable' на тип 'string' - тот же результат. – adray
Итак, если вы изменили 'SearchableAuthor', сеттер для' ChoosenItem' никогда не срабатывает? –