私はMVVM WPFプロジェクトでビューを持っています。 DataGridは、DataTableのDataViewにバインドされたページにあります。真の値がのDataRowの財産であるのに対しDataGrid MultiDataTriggerはViewModelプロパティにバインドします
public bool IsAutorized
{
get { return _isAutorized; }
set
{
_isAutorized = value;
OnNotifyPropertyChanged("IsAutorized");
}
}
:私は必要なのViewModelにプロパティの真の値によって再定義する必要がありますDataGridの行の背景色、のためにMultiDataTriggerを使用することです。これは私が今持っているもので、ViewModelプロパティへのバインディングは正しくありません。プロパティにブレークポイントを設定すると、 "catch"されません。
<Style.Triggers>
<Trigger Property="DataGridRow.IsSelected" Value="True">
<Setter Property="Background" Value="#CCDAFF"/>
</Trigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsAutorized,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Page}}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self},Path=IsNotSpecific}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#CCF4FF" />
</MultiDataTrigger> </Style.Triggers>
バインディングの問題は、私は非常に混乱し、それをgoogleing試みたが、何も見つからなかったしました。どのようなアイデアはそれを行うために暑いですか?
ありがとうございます。
- EDIT:
"IsNotSpecific" および "IsSelected" がデータビューの両方Colmnsあり、それはデータテーブル、厳密に型指定されたDataSetテーブルから取り出されます。
行を選択すると、フィールド/列「IsSelected」がtrueに設定され、特定の色がトリガされます。 Viewプロパティ "IsAutorized"がtrueに設定され、(DataTableの)DataRow "IsNotSpecific"列が "True"に設定されている場合、別の色が表示されるはずです。
なぜRelativeSourceを書いたのですか? IsAutorizedは明らかにPageの財産ではありません。 – Clemens
@Clemens IsAutizedは、ViewModelのプロパティです。私は何がうまくいくのかわからないので、すべてを試してみるだけです。 VMプロパティにはどうすれば到達できますか? –
詳細を入力してください。 –