我希望在数据网格中有一个组合框来显示实际图像列表,而不是文本。
我可以通过手动构建组合框来完成这项工作,但似乎无法通过绑定(这是数据网格可以使用的唯一方式)来实现。
我还尝试了template column,
,但得到了相同的结果 - 显示图像类名称的文本列表。有证据表明这个吗?
答案 0 :(得分:3)
如果ComboBox
显示的班级名称设置为ComboBox.ItemTemplate
,则可以根据需要嵌套任意数量的模板。在这里,我假设MyImageList
由ImageSource
个对象组成(需要一些更大的规范):
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding MyImageList}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
另外,您也可以使用DataGridComboBoxColumn
,只需使用CellStyle
设置可以显示图片的DataTemplate
:
<DataGridComboBoxColumn ItemsSource="{Binding MyImageList}">
<DataGridComboBoxColumn.CellStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Image Source="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridComboBoxColumn.CellStyle>
</DataGridComboBoxColumn>