所有,我試圖循環WPF DataGrid
使用每個循環來改變錯誤的單元格的背景顏色。我檢查了很多問題,但我還沒有找到足夠的答案。我至今是通過WPF DataGrid循環使用foreach
public void RunChecks()
{
const int baseColumnCount = 3;
foreach (DataRowView rv in dataGrid.Items)
{
for (int i = baseColumnCount; i < dataGrid.Columns.Count; i++)
{
if (!CheckForBalancedParentheses(rv.Row[i].ToString()))
{
Color color = (Color)ColorConverter.ConvertFromString("#FF0000");
row.Background = new SolidColorBrush(color); // Problem!
}
}
}
}
的問題是,爲了改變Background
顏色排在我DataGrid
我需要與DataRowView
rv
ascociated的DataGridRow
對象的工作。
如何從對象rv
(DataRowView
)中獲得對DataGridRow
的引用?
謝謝你的時間。
編輯。基於以下建議,我現在有以下樣式,它可以與鼠標懸停事件一起使用,並設置相關單元格的前後字體。但是,我真的失去了如何在上面的代碼中將運行時的背景色應用到單元格中。是XML風格
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontWeight" Value="ExtraBold" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
謝謝你的時間。我會接受你的建議並開始閱讀。我也一直在嘗試顏色和整個專欄,再次沒有運氣。我問另一個問題[這裏](http://stackoverflow.com/questions/15644105/change-the-background-color-of-entire-column-of-wpf-datagrid-at-runtime),如果你可以被遺忘並希望代表。再次感謝... – MoonKnight 2013-03-27 11:18:46
@Killercam:這個想法對於行和列是一樣的。如果UI對象提供了一些可以通過直接訪問或通過綁定進行更改的屬性(本例中爲顏色),則可以使用您的模型視圖對象中的綁定。 – Tigran 2013-03-27 11:25:54
謝謝。閱讀了關於樣式,觸發器等書的章節,現在我已經在鼠標懸停事件上獲得了行更改顏色。但是,我失去了如何在運行時使用這些樣式將單元格/行更改爲代碼所需的顏色。如果你可以在這裏提供任何幫助,將不勝感激...我編輯了這個問題來展示我的風格。 – MoonKnight 2013-03-27 12:29:47