如果在组合框中选择的项目发生更改,如何更改组合框中的属性更改。实际上我想要的是当一个组合框中选择的值被改变时 基于所选值,将填写其他combox。 我已经实现了INotifyProperty接口,即使这样,当你选择一个不同的值时,设置的属性块也没有被执行。
让我用不同的例子详细说明: - 有两个组合框和一个文本块,两个组合框都包含城市名称,因此当用户在第二个组合框中选择城市时,应调用一个方法,该方法将给出文本块中两个城市之间的距离,我这样做使用MVVM。 问题是我无法调用第二个组合框的设置块(从那里我将调用给出距离的方法)。
答案 0 :(得分:1)
如果您正在使用MVVM,则需要将SelectedItem绑定到后面的代码或ViewModel中的属性,确保绑定是双向的,并且属性实现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");
}
}
}