0

この回答Silverlight Datagrid: Highlight an whole column when that column is sorted と組み合わせDataGridたカスタムDataGridTemplateColumnsと派生したカスタム動作があります。私が経験している問題は、DataGridTemplateColumn のセルが「ハイライト」を取得していないことです。カスタム列に使用されているセル テンプレートは、以下に示す構造です。背景のハイライトが適用されない理由を知っている人はいますか? 私はしばらくの間、これについて頭を悩ませてきました。

<DataTemplate>
    <Grid>
        <Border VerticalAlignment='Stretch' Margin='1' Background='Transparent'>
            <TextBlock VerticalAlignment='Center' Text='{Binding Path=Variable}' />
        </Border>
    </Grid>
</DataTemplate>
4

1 に答える 1

0

この問題を解決するには、 から継承するカスタム列クラスでstring DependencyProperty呼び出されるを作成する必要がありました。また、動作では、列の型を確認する必要がありました。BackgroundDataGridTemplateColumn

以前は、CollectionChanged イベント ハンドラーの列を DataGridBoundColumn にケース化していました。ここで、それが実際にそのタイプなのか、それとも DataGridTemplateColumn なのかを確認します。DataGridTemplateColumn には、バインディング パスを確認する別の方法があります。違いを以下に示します。

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

私がしなければならなかった最後の微調整は、の構造を変更して、DataTemplate以下のように見えるようにすることでした。基本的には、色を別の方法で設定するだけです。

<DataTemplate>
    <Grid>
        <Border>
            <Border.Background>
                <SolidColorBrush Color='{0}' />
            </Border.Background>
            <TextBlock VerticalAlignment='Center' Text='{Binding Path=Variable}' />
        </Border>
    </Grid>
</DataTemplate>
于 2010-10-25T20:35:21.683 に答える