我将 MVVM 模式与 Xceed 的 WPF 一起使用,DataGridControl
并且我已将网格的一列绑定到我的视图模型/数据上下文的布尔属性。
默认情况下它显示为一个复选框,而不是我想显示一个图像,例如一个笑脸True
和一个悲伤的脸False
。它不需要像复选框那样表现,因为该列是只读的。
实现这一目标的最佳方法是什么?
Xceeds 网站上有一篇关于如何根据其他值设置 DataCell 样式的博客。因此,本质上,您可以创建一个其中包含图像控件的 DataTemplate,并且您可以创建一个条件,如果值为 true,则设置快乐的脸,如果值为 false,则设置悲伤的脸。以下链接显示了如何执行此操作:
http://xceed.com/CS/blogs/techside/archive/2011/07/06/datacell-styling-vs-cellcontenttemplate.aspx
您必须创建数据网格模板列以实现自定义样式。
<DataGrid.Columns>
<DataGridTemplateColumn Header="First Name" IsReadOnly="True" Width="Auto" MinWidth="100" CanUserSort="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Image Source="smile.jpg"/>
<Image Source="smile.jpg"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
您可以进一步使用数据触发器来处理图像的可见性