我有2个组合盒主从这样:
<ComboBox ItemSource="{Binding MySource}" SelectedItem="{Binding MySelectedItem}" DisplayMemberPath="Description" />
<ComboBox ItemSource="{Binding MySelectedItem.Items}" IsSynchronizedWithCurrentItem="{x:Null}" />
但当我在第一个组合框中选择一个项目时,它有空的“项目”列表,而我已经用“项目”选择了其中一个项目,并在第二个组合框选择了项目。第二个组合框中的文本不为空。我也尝试过使用IsSynchronizedWithCurrentItem=“False”。
是什么问题呢?
我不明白你想说什么...但是我很确定您在修改“我的选择项”后没有通知属性更改,并且您忘记了模式=双向...
如果要在视图模型中使用SelectedItem:
Xaml:
<ComboBox ItemSource="{Binding MySource}" SelectedItem="{Binding MySelectedItem, mode=TwoWay}" DisplayMemberPath="Description" />
<ComboBox ItemSource="{Binding MySelectedItem.Items}"/>
视图模型:
private YourItemType _mySelectedItem;
public YourItemType MySelectedItem
{
get { return (_mySelectedItem);}
set
{
if (_mySelectedItem != value)
{
_mySelectedItem = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("MySelectedItem"));
}
}
}
如果您只想进行过滤:
<ComboBox ItemSource="{Binding MySource}" DisplayMemberPath="Description" name="source"/>
<ComboBox ItemSource="{Binding SelectedItem.Items, ElementName=source}"/>
我发现了问题,是我在组合框中将命令与交互性相关联,这捕获了异常并且没有继续执行。