Ech*_*lon 5 .net datagrid styles workflow-foundation controltemplate
我很难让RowStyleSelector与WPF DataGrid一起使用.
在我的资源中,我有
<loc:DetailsRowStyleSelector x:Key="detailsRowStyleSelector" AddRowStyle="{StaticResource newItemRowStyle}" StandardRowStyle="{StaticResource RowStyle}"/>
Run Code Online (Sandbox Code Playgroud)
然后我的datagrid像这样使用它:
<DataGrid ...
EnableRowVirtualization="false"
VirtualizingStackPanel.VirtualizationMode="Standard"
RowStyleSelector="{StaticResource detailsRowStyleSelector}"
Run Code Online (Sandbox Code Playgroud)
调用选择器的构造函数,但SelectStyle方法不是,我的行看起来都一样.关于这一点的文档似乎很少,但这就是我的选择器的样子:
public class DetailsRowStyleSelector : StyleSelector {
public Style AddRowStyle { get; set; }
public Style StandardRowStyle { get; set; }
public DetailsRowStyleSelector() {
Console.WriteLine(""); // this is called
}
public override Style SelectStyle(object item, DependencyObject container) {
// this is not called
Run Code Online (Sandbox Code Playgroud)
最可能的原因是您在本地或通过继承的样式设置RowStyle或ItemContainerStyle设置DataGrid.
该RowStyleSelector覆盖的ItemContainerStyleSelector,包括文档中的以下声明:
请注意,如果设置了ItemContainerStyle属性,则会忽略此属性.