我有一个带有组合框列的数据网格视图。是否可以在下拉列表中使用该值但是在选择一个项目以获取该单元格中该项目的键后?
E.g。我的键值对:1 = Car,2 = Plane,3 = Submarine ......下拉列表应显示Car,Plane,Submarine ......以及何时" Plane"仅被选中" 2"是在牢房里。
有些想法吗?
答案 0 :(得分:1)
我认为你可以简单地使用ItemTemplate来显示你想要的属性:
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
可替换地:
<ComboBox DisplayMemberPath="Value" />
答案 1 :(得分:0)
使用DisplayMemberPath
属性指定要显示的属性的名称作为组合框项目的文本。
使用SelectedValuePath
属性指定要用于组合框的SelectedValue的属性的名称。
<ComboBox
DisplayMemberPath="Value"
SelectedValuePath="Key"
/>
因此,如果你有一个项目{ Key = 2, Value = "Plane" }
,用户将在组合框项目中看到“Plane”,当他选择时,ComboBox的SelectedValue
属性将返回2
,而组合框的SelectedItem
属性将返回整个选定对象{ Key = 2, Value = "Plane" }
。
ComboBox.ItemTemplate
是合适的,但如果你想要的只是属性的字符串值,DisplayMemberPath
可以简单而可读地完成工作。
答案 2 :(得分:0)
也许我解释了我的意思但是经过几个小时的努力之后我才找到了解决方案:
<ComboBoxColumn DisplayMemberPath="Value" SelectedValueMemberPath="Key" DataMemberBinding="{Binding myCollection, Mode=TwoWay}" >
<common:FWGridViewComboBoxColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}" />
</DataTemplate>
</common:FWGridViewComboBoxColumn.CellTemplate>
</ComboBoxColumn>
这正是我所寻找的。 感谢S. Spindler,你给了我正确的指导方向。