当组合框中选择的项目发生更改时,如何更改组合框中的属性更改。实际上我想要的是当一个组合框中选择的值被更改时
根据选择的值,其他组合框将被填充。
我已经实现了 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/