Повышать PropertyChanged при изменении выбранного элемента в выпадающем списке в Silverlight MVVM - PullRequest
1 голос
/ 15 мая 2011

Как изменить изменение свойства в выпадающем списке при изменении элемента, выбранного в выпадающем списке. На самом деле то, что я хочу, это когда значение, выбранное в одном выпадающем списке изменяется, то на основе выбранного значения необходимо заполнить другое поле. Я реализовал интерфейс INotifyProperty даже тогда, когда вы выбираете другое значение, заданный блок свойства не выполняется.

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

1 Ответ

1 голос
/ 15 мая 2011

Вам необходимо привязать SelectedItem к свойству в коде или ViewModel, если вы используете MVVM, гарантируя, что привязка двухсторонняя, а свойство реализует INotifyPropertyChanged:

<ComboBox Name="ComboBox1" ItemsSource="{Binding Items}" 
          SelectedItem="{Binding Path=SelectedItem,Mode=TwoWay}" 
          DisplayMemberPath="TextProp" >

public Collection<ItemClass> Items
{
     get
     {
          return _items;
     }
     private set
     {
           if (value != _items)
           {
                _items = value;
                RaisePropertyChanged("Items");
           }
     }
 }

 public ItemClass SelectedItem
 {
      get
      {
          return _selectedItem;
      }
      set
      {
           if (value != _selectedItem)
           {
                _selectedItem = value;
                RaisePropertyChanged("SelectedItem");
           }
      }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...