3

私はいくつかのデータを持っています。そのデータを調べて、そのデータが特定の条件を満たしている場合は、セル (たとえば、背景色) を変更したいと考えています。どういうわけか、Silverlight でこの一見簡単なことを行う方法を理解できませんでした。

4

3 に答える 3

5

これは少し古いコード (RTM の前から) ですが、探しているようなことを行います。行内のオブジェクトの一部のデータをチェックし、それに応じて行の色を設定します。

XAML:

<my:DataGrid x:Name="Grid" Grid.Row="1" Margin="5" GridlinesVisibility="None" PreparingRow="Grid_PreparingRow">
    <my:DataGrid.Columns>
        <my:DataGridTextBoxColumn 
            DisplayMemberBinding="{Binding Cheese}" 
            Header="Cheese"></my:DataGridTextBoxColumn>
        <my:DataGridTextBoxColumn 
            DisplayMemberBinding="{Binding Biscuit}" 
            Header="Biscuit"></my:DataGridTextBoxColumn>
    </my:DataGrid.Columns>
</my:DataGrid>

コード:

this.Grid.AlternatingRowBackground = null; 

private void Grid_PreparingRow(object sender, DataGridRowEventArgs e)
{
    CheesyClass c = e.Row.DataContext as CheesyClass;
    if (c != null && c.Cheese == "cheddar")
    {
       e.Row.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 255, 125, 125));
    }
}
于 2008-12-18T15:23:37.717 に答える
1

実際、これはすべての例で機能するとは限りません。これを達成するための「適切な」方法については、これらのリンクを参照してください

http://silverlight.net/forums/p/27465/93474.aspx#93474

http://silverlight.net/forums/t/27467.aspx

于 2009-01-12T07:51:27.450 に答える
0

私は通常、Visibility、Colourなどを返す、バインドされているデータ型ごとにカスタムValueConverterを作成しました。

これにより、カスタマイズルールが定義され、非常にうまく機能することがわかりました。

ロビンの2番目のリンクは、カスタムValueConverterの作成について説明しています。

于 2009-01-23T15:16:13.277 に答える