私がしようとしていることは「シンプル」なので、明らかに何かが不足していると思います。DataTriggerをチェックボックスのIsCheckedプロパティにバインドする
DataGridでは、CheckBoxをバインドしようとしていますが、チェックされるとその行の背景色が変更されるようにしています。すべての行にCheckBoxがあります。私は基本的に私自身のselect-multiple-rows機能を実装しています(これは製品の要件です。質問しません)。
私はthis questionを読んだことがありますが、私の答えが不足しているのは、正確には "BooleanPropertyOnObjectBoundToRow"とするものです。私もthis questionを見て、RelativeSourceを使いこなそうとしましたが運がありませんでした。
私は私のコードビハインドで私のグリッドを作成するが、ここでは(私のDataTriggerが定義されている)の行に使用私の現在のスタイルです:
<Style x:Key="MyRowStyle" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked}" Value="True">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
</Style>
は今私のコードビハインドで、私は私のDataGridTemplateColumnを作成し、私のチェックボックスを作成するために工場を使用し、ここで私のバインディング関連のコードです:興味のある何
Binding checkBinding = new Binding("IsChecked");
checkBinding.Mode = BindingMode.OneWayToSource;
RelativeSource relativeSource = new RelativeSource();
relativeSource.AncestorType = typeof(DataGridRow);
relativeSource.Mode = RelativeSourceMode.FindAncestor;
checkBinding.RelativeSource = relativeSource;
factory.SetBinding(CheckBox.IsCheckedProperty, checkBinding);
、私はDataTableのに自分のデータグリッドののItemsSourceを設定しているという事実であるが、私のチェックボックス列はありませんDataTableに対応する列があります。テンプレート列を別々に追加するだけで、おそらくこれが基盤となるストレージの不足がこの影響を及ぼしているのでしょうか?
詳細情報が必要な場合は、私にお知らせください。ありがとう!
すべての私の答えは役に立ちましたか? – Phil