2017-07-16 36 views
0

我試圖在具有特定背景顏色/畫筆一個DataGrid檢索列的列表,使用以下:檢索WPF DataGrid列清單按背景的屬性設置

Dim OutputCols As New List(Of DataGridColumn) 
OutputCols = datagrid_Output.Columns.Where(Function(a) Not (a.CellStyle Is Nothing) AndAlso a.GetValue(BackgroundProperty) Is GridOutputsColor).ToList 

然而,這並未沒有工作,我發現GetValue(BackgroundProperty)正在返回空白值。如果我這樣做,但我得到的SetterBase對象,而不是二傳手(S),我想:

Dim OutputCols As New List(Of DataGridColumn) 
OutputCols = datagrid_Output.Columns.Where(Function(a) Not (a.CellStyle Is Nothing) AndAlso a.CellStyle.Setters.First(Function(b) b.property Is BackgroundProperty).value Is GridOutputsColor).ToList 

...它不工作,因爲功能(二)返回SetterBase對象,而不是每個Setter的。

回答

0

實測值討厭的溶液:

Dim OutputCols As New List(Of DataGridColumn) 
OutputCols = datagrid_Output.Columns.Where(Function(a) Not (a.CellStyle Is Nothing) AndAlso TryCast(a.CellStyle.Setters.Where(Function(b) TryCast(b, Setter).Property Is BackgroundProperty).ToList.First, Setter).Value Is GridOutputsColor).ToList