私は単純なSilverlightタスクを持っています。SilverlightでDataGridRowの設定の前景を設定する
DataGridにSupplierオブジェクトのリストを表示します。
サプライヤが「非アクティブ」(サプライヤのプロパティIsDeactivated)と表示されている場合は、ハンドアイコンを表示し、フォアグラウンドカラーをグレーに設定します。それ以外の場合は、前景色を青色に設定します。ここに示すように、指定されたcolumsがテンプレート列です
:
<sdk:DataGridTemplateColumn IsReadOnly="True">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Padding="3" Text="{Binding City}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
私はLoadingRowを実装し、データソースを割り当てた後、フォアグラウンド色を設定するには
行は次のようになります。とUndloadingRowイベント:
private void LoadingDataGridRow(object sender, DataGridRowEventArgs e)
{
var supplier = (Supplier)e.Row.DataContext;
e.Row.Foreground = supplier.IsDeactivated ? new SolidColorBrush(Colors.Gray) : new SolidColorBrush(Color.FromArgb(255, 65, 85, 155));
}
private void UnLoadingDataGridRow(object sender, DataGridRowEventArgs e)
{
var supplier = (Supplier)e.Row.DataContext;
e.Row.ClearValue(ForegroundProperty);
}
は、しかし、私は今がtrueにをIsDeactivated変更したときに、手のアイコンが見えない - 必要に応じて - しかし、フォアグラウンドの色が灰色に残っている:
私はすでにこの問題を解決しようとしましたコンバータまたはPropertyChangeTriggerアプローチを行うことで問題が、しかし、これはマウスオーバーまたはを選択に設定されたカスタムvisualSTATEのスタイルを上書きします。
これは、と関係があると聞きました。DataGrid Virtualizing?
誰かが問題の解決方法を知っていますか?