我正在尝试为数据网格实现单元格模板 . 问题是,当我尝试绑定到datagridview中的Object时,我没有得到我期望的值 .
这就是数据网格没有样式的样子:
非常简单,但是当我尝试使用带触发器的单元格模板来设置样式时,这就是我得到的内容(上面有DAL.Task的每个单元格应该包含一个橙色圆圈):
这是我用来设置网格样式的xaml:
<DataTemplate x:Key="MiddleDataGridCellTemplate">
<Grid>
<Image Name="CenterImage"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Row.ItemArray/TaskStatusName}"
Value="In Progress">
<Setter TargetName="CenterImage"
Property="Source"
Value="/besoControlLibrary;component/Resources/Spreadsheet_CheckedOut.png" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
我猜测“{Binding Row.ItemArray / TaskStatusName}”导致了问题,在datagridview中提取DAL.Task的TaskStatusName属性的正确方法是什么?
我发现空白单元格的值是DBNull,如果这有帮助的话 .
此外,这些值来自DataTable,它是DataGrid的上下文 .
2 回答
DataContext应该已经是您正在显示的对象,因此您应该能够绑定到您想要的任何属性:
运行应用程序时,您可以通过查看输出窗口获得更多信息 . 这里还有一个DataGridTemplateColumn的例子,它可能是你想要模仿的:
http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn%28v=vs.95%29.aspx
我解决了问题,解决方案在这里:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7fe562f4-739c-45df-bea3-557abd80c63d