silverlight - 在 Silverlight MVVM 的组合框中更改所选项目时引发 PropertyChanged

标签 silverlight mvvm

当组合框中选择的项目发生更改时,如何更改组合框中的属性更改。实际上我想要的是当一个组合框中选择的值被更改时
根据选择的值,其他组合框将被填充。
我已经实现了 INotifyProperty 接口(interface),即使当您选择不同的值时,设置的属性 block 也不会被执行。

让我用一个不同的例子来详细说明一下:-
有两个组合框和一个文本 block ,两个组合框都包含城市名称,所以当用户在第二个组合框中选择城市时,应该调用一个方法,它将给出文本 block 中两个城市之间的距离,我正在这样做使用 MVVM。
问题是我无法调用第二个组合框的设置 block (我将从那里调用给出距离的方法)。

最佳答案

如果使用 MVVM,则需要将 SelectedItem 绑定(bind)到代码后面的属性或 ViewModel 中,确保绑定(bind)是两种方式,并且该属性实现了 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");
           }
      }
  }

关于silverlight - 在 Silverlight MVVM 的组合框中更改所选项目时引发 PropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007045/

相关文章:

c# - DataBinding 不适用于列表

silverlight - 如何在 Ubuntu 12.0.4 中安装月光?

silverlight - XAML 矢量到 Illustrator 或类似工具

c# - 工具包图表旋转标签 X 轴

c# - 在 Windows Phone 运行时更改图像控件的 z 顺序

wpf - 从 MainModule 绑定(bind) UserControl 的控件绑定(bind)

wpf - 如何更改数据在 WPF GridControl 中的显示方式?

c# - 绑定(bind)案例中的 ItemsSource 与 DataContext

javascript - 如何使用 MVVM 创建自定义模板下拉列表剑道?

c# - 针对列表的多个搜索关键字