用于Combobox的WPF不同ItemsSource

时间:2013-11-28 10:47:37

标签: c# wpf xaml combobox

我想将布尔值,对象列表和枚举值绑定到组合框。根据数据网格的列弹出一个对话框,我加载一个对象列表(Object1.Name .... ObjectN.Name是Names,ObjectId1..ObjectIdN是Id的),我加载一个EnumValue列表(EnumItem1..EnumItemN是Names,EnumValue1 .. EnumValueN是Id's),或布尔值(是/否是名称,0/1是Id)。

我该怎么办?我需要在我的ViewModel中为我的组合框实现一个包装类吗? (此包装类将获取对象列表,列出是/否为布尔值,枚举值列表)。

2 个答案:

答案 0 :(得分:2)

 <Style Target={x:Type ComboBox}>
   <Style.Triggers>
       <DataTrigger Binding="{Path=RowData.Row.PropertyToBeChecked}" Value="Value1">
           <Setter Property="DataSource" Value="{Binding Path=ListCorrespondingToValue1}"/>
       </DataTrigger>
       <DataTrigger Binding="{Path=RowData.Row.PropertyToBeChecked}" Value="Value2">
           <Setter Property="DataSource" Value="{Binding Path=ListCorrespondingToValue2}"/>
       </DataTrigger>
   </Style.Triggers>
</Style>

答案 1 :(得分:1)

好吧,对我来说,我认为你可以通过一个触发器来实现你的目标,你可以在其中设置组合框的dataSource。它看起来像

<Style Target={x:Type ComboBox}>