我有一个与DataGrid
混合的自定义DataGridTemplateColumns
以及从此回复Silverlight Datagrid: Highlight an entire column when that column is sorted派生的自定义行为。我遇到的问题是任何DataGridTemplateColumn的单元格都没有拾取“突出显示”。用于自定义列的单元格模板具有如下所示的结构。任何人都有任何想法为什么没有应用背景突出显示?我已经在这个问题上挣扎了一段时间。
<DataTemplate>
<Grid>
<Border VerticalAlignment='Stretch' Margin='1' Background='Transparent'>
<TextBlock VerticalAlignment='Center' Text='{Binding Path=Variable}' />
</Border>
</Grid>
</DataTemplate>
答案 0 :(得分:0)
要解决此问题,我最终需要在继承自string DependencyProperty
的自定义列类上创建名为Background
的{{1}}。此外,在行为中,我必须检查列的类型。
之前,我只是将CollectionChanged事件处理程序中的列添加到DataGridBoundColumn。现在我检查它是否真的是那种类型,或者它是否是一个DataGridTemplateColumn。 DataGridTemplateColumn有不同的方法来检查绑定路径,差异如下所示
DataGridBoundColumn:DataGridTemplateColumn
DataGridTemplateColumn:boundColumn.Binding.Path.Path
我必须做的最后调整是改变boundColumn.SortMemberPath
的结构,使其现在看起来如下所示,基本上设置颜色的方式完全不同。
DataTemplate