我是WPF的新手,正在开发使用C#和.NET3.5。我有WPFToolkit的DataGrid添加到我的窗口。我无法弄清楚如何将Style设置为列标题和行?行是动态添加的。如何将样式设置为WPFToolkit DataGrid?
<my:datagrid name="myGrid" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" itemssource="{Binding }" autogeneratecolumns="False">
SelectionMode="Extended" SelectionUnit="FullRow" CanUserReorderColumns="False"
ColumnHeaderHeight="42" Background="#FFF7F7F7" BorderBrush="Transparent"
HorizontalGridLinesBrush="#FFEAEAEA" VerticalGridLinesBrush="#FFEAEAEA"
HeadersVisibility="Column" RowHeaderWidth="0" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" ClipboardCopyMode="None" MinRowHeight="28"
Rowremoved="#FFF7F7F7" RowDetailsVisibilityMode="Visible" RowHeight="28"
DataContextChanged="serverGrid_DataContextChanged">
<my:datagrid.columns>
<my:datagridtextcolumn header="Enabled" width="120" binding="{Binding Path=Name}" />
<my:datagridtextcolumn header="Enabled" width="70" binding="{Binding Path=Country}" />
<my:datagridtextcolumn header="Enabled" width="100" binding="{Binding Path=Description}" />
</my:datagrid.columns>
</my:datagrid>
在资源增加了代码风格:
<!-- DataGridColumnHeader-->
<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type Thumb}">
<setter property="Background" value="#9DCFD0" />
<setter property="FontFamily" value="Arial Rounded MT" />
<setter property="FontSize" value="14" />
<setter property="FontWeight" value="Bold" />
<setter property="Foreground" value="#00545B" />
<setter property="VerticalContentAlignment" value="Center" />
<setter property="HorizontalContentAlignment" value="Center" />
</Style>
在风格TargetType的,我不能够设置为my:DataGridColumnHeader
或只是DataGridColumnHeader
。它说“...未找到”。在my:DataGridTextColumn
我猜HeaderStyle
是设置样式的属性。但是我能够为相同的风格定义。
另外如何设置动态添加行的样式?我哪里错了? 任何帮助是高度赞赏。
与此运行时,而Show(),我在调试中遇到以下错误“'DataGridColumnHeader'TargetType与元素'DataGridCell'。”类型不匹配。没有调试,它只是退出并没有显示任何东西。 – Tvd
已将datagrid的'CellStyle'设置为'DataGridColumnHeaderStyle'?他们显然是两个不同的东西。 –
但是目标类型即DataGridColumnHeader不可访问。我只能访问我的:DataGrid,DataGridCell,DataGridcellsPanel,DataGridHeaderBorder和DataRow相对于DataGrid - 试图通过xaml通过typtin“
Tvd