我在MVVM WPF項目中有一個View。我有一個頁面中的DataGrid綁定到DataView(從DataTable)。我需要的是用MultiDataTrigger爲DataGrid行的背景顏色,應該由視圖模型屬性的真值進行重新定義:DataGrid MultiDataTrigger綁定到ViewModel屬性
public bool IsAutorized
{
get { return _isAutorized; }
set
{
_isAutorized = value;
OnNotifyPropertyChanged("IsAutorized");
}
}
而True值是DataRow中的一個屬性。這就是我現在擁有的,並且綁定到ViewModel屬性是不正確的,當我在屬性上設置一個斷點時,它不會被「捕獲」。
<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它,但什麼都沒發現。任何想法很難做到這一點?
謝謝。
- 編輯:
「IsNotSpecific」 和 「IsSelected」 都是Colmns的數據視圖,即從數據表中,一個強類型DataSet的表中獲取。
當選中某行時,字段/列「IsSelected」設置爲true,並觸發某種顏色。當View屬性「IsAutorized」設置爲true並且DataRow(來自DataTable)「IsNotSpecific」列設置爲「True」時,應該顯示不同的顏色。
你爲什麼寫這個RelativeSource? IsAutorized顯然不是Page的財產。 – Clemens
@Clemens IsAutorized是ViewModel的一個屬性。我只是嘗試一切,因爲我不知道會發揮什麼作用。我如何到達VM屬性? –
請增加更多信息。 –