Trong mã XAML, tôi muốn đặt màu Background
của mỗi hàng, dựa trên giá trị của đối tượng trong một hàng cụ thể. Tôi có một số ObservableCollection
của z
và mỗi một trong số z
có một thuộc tính được gọi là State
. Tôi bắt đầu với một cái gì đó như thế này trong DataGrid
tôi:Cách thiết lập hàng nền của DataGrid, dựa trên giá trị thuộc tính sử dụng kết buộc dữ liệu
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background"
Value="{Binding z.StateId, Converter={StaticResource StateIdToColorConverter}}"/>
</Style>
</DataGrid.RowStyle>
Đây là một cách tiếp cận sai vì x không phải là một tài sản trong lớp ViewModel của tôi.
Trong lớp ViewModel của tôi Tôi có một ObservableCollection<z>
là ItemsSource
của DataGrid
này, và một SelectedItem
loại z
.
Tôi có thể liên kết màu với SelectedItem
, nhưng điều này sẽ chỉ thay đổi một hàng trong số DataGrid
.
Làm cách nào để tôi có thể dựa trên một thuộc tính thay đổi màu nền của hàng này?
tôi chỉ nhận được: BindingExpression lỗi đường dẫn: ' Không tìm thấy thuộc tính 'State' trên 'object' '' z '(HashCode = 7162954)'. BindingExpression: Đường dẫn = Tiểu bang; DataItem = 'z' (HashCode = 7162954); phần tử đích là 'DataGridRow' (Tên = ''); target property là 'NoTarget' (gõ 'Object') 'Howcome rằng nó không tìm thấy bất động sản Nhà nước khi thực thể của tôi giữ điều này, và cơ sở dữ liệu của tôi cho thấy Nhà nước như là một cột? –
Tôi hy vọng bạn không làm điều đó như 'z.State'. – Nitesh
Chỉ cần đi qua này một lần nữa sau khi thời gian tắt từ wpf, ước gì tôi có thể upvote một lần nữa! – Ric