我遇到了將XAML轉換爲代碼隱藏的麻煩。XAML代碼隱藏
我有這樣的:
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding state}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding state}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
的DataGrid
通過(僞)填充... new Dataview(ds.Tables[mytable]);
現在我試圖創建在後面 的代碼風格和觸發,但我有麻煩與綁定。
我
BrushConverter brushConverter = new BrushConverter();
Style setcolor = new Style();
setcolor.TargetType = typeof(DataGridRow);
DataTrigger setgreen = new DataTrigger();
setgreen.Binding = new Binding("state");
setgreen.Value = true;
setgreen.Setters.Add(new Setter(DataGrid.RowBackgroundProperty, brushConverter.ConvertFromString(Colors.GreenYellow.ToString())));
setcolor.Triggers.Add(setgreen);
-Alas它不工作
您沒有設置'setgreen.Binding'。爲什麼刷轉換器?你可以只寫'Brushes.GreenYellow'。 – Clemens
不知道刷子 - 虐待做到這一點。謝謝。 - 似乎我把這部分留下了,編輯了這個問題。 – VisualBean
我想你想設置'DataGridRow.BackgroundProperty'而不是'DataGrid.RowBackgroundProperty'。 – Clemens