我的视图模型中有三个集合,一个用于类别1的项,另一个用于类别2的项,另一个用于类别3的项。
另外,我还有一个属性,它是IDCategory,属于视图模型的类别。
我的视图中有一个组合框,如果视图模型的属性IDCategory为1,我希望绑定到第一个集合;如果属性IDCategory为2,则绑定第二个集合;如果IDCategory为3,则绑定最后一个集合。
我尝试用这种方式使用DataTrigger:
<ComboBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding ElementName=myUserControl, Path=DataContext.IDCategory}" Value="1">
<Setter Property="ItemsSource" Value="{Binding MyCollection1}"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=myUserControl, Path=DataContext.IDCategory}" Value="2">
<Setter Property="ItemsSource" Value="{Binding MyCollection2}"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=myUserControl, Path=DataContext.IDCategory}" Value="3">
<Setter Property="ItemsSource" Value="{Binding MyCollection3}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
但是itemssource在datatrigger集合中不可用,所以我想知道这种解决方案是否真的可行。
谢谢。