【发布时间】:2009-12-01 00:00:48
【问题描述】:
我在 WPF 应用程序中使用 DataGrid,该应用程序有几个(字面意思是一周中的每一天一个)列,这些列仅在数据索引上有所不同。下面是 xaml 的示例。
我怎样才能将它重构为更干燥的东西?
干杯,
浆果
SAMPLE XAML(七列中的两列):
<dg:DataGridTextColumn
Header="{Binding Source={StaticResource spy}, Path=DataContext[0].EventDate, Converter={StaticResource dateConv}}"
CellStyle="{StaticResource DataEntryCellStyle}" Width="60" CanUserResize="False"
Binding="{Binding Allocations[0].Amount, Converter={StaticResource amtConv}}"
/>
<dg:DataGridTextColumn
Header="{Binding Source={StaticResource spy}, Path=DataContext[1].EventDate, Converter={StaticResource dateConv}}"
CellStyle="{StaticResource DataEntryCellStyle}" Width="60" CanUserResize="False"
Binding="{Binding Allocations[1].Amount, Converter={StaticResource amtConv}}"
/>
== 已编辑添加信息@JALFP ===
编译器在构建时抱怨目标类型不是框架元素
<Style x:Key="dayOfWeekColumn" TargetType="dg:DataGridTextColumn" >
<Setter Property="CanUserResize" Value="False"/>
<Setter Property="CanUserSort" Value="False"/>
<Setter Property="Width" Value="60" />
<Setter Property="CellStyle" Value="{StaticResource dataEntryGridCellStyle}" />
</Style>
我也没有看到任何看起来像 ColumnStyle 的东西。我会在 DataGridTextColumn 的 xaml 中将此样式设置为什么属性?
【问题讨论】: