Silverlight Datagrid:使用自定义行为设置模板单元格的背景

时间:2010-10-24 17:41:23

标签: c# silverlight xaml datagrid datagridtemplatecolumn

我有一个与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>

1 个答案:

答案 0 :(得分:0)

要解决此问题,我最终需要在继承自string DependencyProperty的自定义列类上创建名为Background的{​​{1}}。此外,在行为中,我必须检查列的类型。

之前,我只是将CollectionChanged事件处理程序中的列添加到DataGridBoundColumn。现在我检查它是否真的是那种类型,或者它是否是一个DataGridTemplateColumn。 DataGridTemplateColumn有不同的方法来检查绑定路径,差异如下所示

DataGridBoundColumn:DataGridTemplateColumn DataGridTemplateColumn:boundColumn.Binding.Path.Path

我必须做的最后调整是改变boundColumn.SortMemberPath的结构,使其现在看起来如下所示,基本上设置颜色的方式完全不同。

DataTemplate