W moim kodzie XAML, chcę ustawić kolor Background
każdego wiersza, w oparciu o wartość obiektu w jednym określonym wierszu. Mam ObservableCollection
z z
, a każdy z z
ma właściwość o nazwie State
. Zacząłem się z czymś takim w moim DataGrid
:Jak ustawić wiersz DataGrid Tło, na podstawie wartości właściwości za pomocą powiązań danych
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background"
Value="{Binding z.StateId, Converter={StaticResource StateIdToColorConverter}}"/>
</Style>
</DataGrid.RowStyle>
Jest to błędne podejście, ponieważ x nie jest właściwością w klasie ViewModel.
W mojej klasie ViewModel Mam ObservableCollection<z>
która jest ItemsSource
tego DataGrid
i SelectedItem
typu z
.
Mogę związać kolor z SelectedItem
, ale zmieni to tylko jeden wiersz w DataGrid
.
Jak mogę, na podstawie jednej właściwości zmienić ten kolor tła wierszy?
ja tylko dostać: error ścieżka BindingExpression: ' Właściwość "stan" nie została znaleziona w "obiekcie" "z" (HashCode = 7162954) ". BindingExpression: Path = State; DataItem = 'z' (HashCode = 7162954); elementem docelowym jest 'DataGridRow' (Name = ''); Właściwością target jest "NoTarget" (type "Object"). "Howcome that does not find the Property State, gdy moja jednostka to posiada, a moja baza danych pokazuje stan jako kolumnę? –
Mam nadzieję, że nie robisz tego jako 'z.State'. – Nitesh
Natknąłem się na to ponownie po czasie wolnym od wpf, żałuję, że nie mogłem ponownie zabrać głosu! – Ric