wpf DataGridTextColumn重构
问题描述:
我在一个WPF应用程序中使用了一个DataGrid,该应用程序有几个(字面上每周的每一天一个)列,这些列只有它们的数据索引不同。下面是xaml的一个示例。wpf DataGridTextColumn重构
我该如何将它重构成更干的东西?
干杯,
Berryl
样品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用户互动,增加信息@ 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中将此样式设置为什么属性?
答
也许您可以创建自己的类,该类继承自DataGridTextColumn并添加新的DependencyProperty DayIndex(从0到6)。然后在这个类你可以到你在XAML做初始化...
但我不知道这将是一个真正的更好,更易于维护的解决方案...
嗨Jalfp,并感谢为答复。这是有道理的,虽然我希望巧妙地使用风格和其他我不熟悉的WPF技术可能会更容易。 – Berryl 2009-12-02 18:02:14
您可以使用定位DataGridTextColumn类型的样式并设置CellStyle,Width和CanUserResize属性。 – japf 2009-12-03 15:11:36
嗨加尔夫。我尝试过没有成功;在编辑原始发布时添加了代码和评论。你可以看一下吗?干杯! – Berryl 2009-12-07 18:21:10