我在WPF应用程序中使用DataGrid,该应用程序有几个(一周中每天都有一个)列,这些列只在数据索引上有所不同。 xaml的样本如下。
如何将其重构为更干燥的东西?
干杯,
Berryl
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}}"
/>
== EDITED ADD'L INFO @ 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中为此样式设置什么属性?
答案 0 :(得分:1)
也许您可以创建自己的类,该类继承自DataGridTextColumn并添加新的DependencyProperty DayIndex(从0到6)。然后在这个类中,您可以进行XAML中的初始化...
但我不确定它会是一个更好,更易维护的解决方案......