比方说,我有一个对象,它是这样的:高级模板
Id = 123456789
Date = 01.01.2013
CurrentItems = 20
TotalItems = 200
A = 25
我想创建一个风格类似以下图片的DataGrid
:
我知道如何为DataGrid
创建控件模板来更改一般的单元格样式,但是如何创建专门用于这种给定数据的模板?
比方说,我有一个对象,它是这样的:高级模板
Id = 123456789
Date = 01.01.2013
CurrentItems = 20
TotalItems = 200
A = 25
我想创建一个风格类似以下图片的DataGrid
:
我知道如何为DataGrid
创建控件模板来更改一般的单元格样式,但是如何创建专门用于这种给定数据的模板?
你可以使用转换器,多绑定,触发器或模板选择...或两个
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentControl ContentTemplateSelector="{StaticResource myCellTemplateSelector}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
混合这里的一对收集的项目多绑定:(我在这里是免费的打字,没有VS很抱歉,如果有未接标签等) 这样一来显示20/200:
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border Background="{Binding MyItems.A}, Converter={StaticResource BlueToRed}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding MyItems.CurrentItems}"/>
<TextBlock Text="/"/>
<TextBlock Text="{Binding MyItems.TotalItems}"/>
</StackPanel>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
听起来不错,非常感谢! – hattenn
是的,没问题! –
谷歌“WPF DataTemplateSelector”。阅读完两个样本后不应该让你花很长时间去做。 –
非常感谢,看起来很有用。将一个以上的资产放在一列中怎么办?有关于此的任何想法? – hattenn
当然,我会用一个CellDataTemplate为你提供一个代码示例 –