私はいくつかのデータを持っています。そのデータを調べて、そのデータが特定の条件を満たしている場合は、セル (たとえば、背景色) を変更したいと考えています。どういうわけか、Silverlight でこの一見簡単なことを行う方法を理解できませんでした。
Mindaugas Mozuras
質問する
23247 次
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
実際、これはすべての例で機能するとは限りません。これを達成するための「適切な」方法については、これらのリンクを参照してください
于 2009-01-12T07:51:27.450 に答える
0
私は通常、Visibility、Colourなどを返す、バインドされているデータ型ごとにカスタムValueConverterを作成しました。
これにより、カスタマイズルールが定義され、非常にうまく機能することがわかりました。
ロビンの2番目のリンクは、カスタムValueConverterの作成について説明しています。
于 2009-01-23T15:16:13.277 に答える