我有一个数据网格。
商品来源MySource
是observableCollection<myClass>
。
课程myClass
有一个属性BackgroundOfRow
- 其类型为Brush
。
我想将RowBackground
属性绑定到xaml中的此属性。
我怎么能这样做?
我的xaml现在是:
<DataGrid AutoGenerateColumns="False"
ItemSource="{Binding Source={StaticResource myViewModel}, Path=MySource}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name"
Binding="{Binding Path=FirstName}"
FontFamily="Arial"
FontStyle="Italic" />
<DataGridTextColumn Header="Last Name"
Binding="{Binding Path=LastName}"
FontFamily="Arial"
FontWeight="Bold" />
</DataGrid.Columns>
</DataGrid>
答案 0 :(得分:1)
您可以绑定Background
RowStyle
中的DataGrid
媒体资源:
查看:强>
<DataGrid ItemsSource="{Binding EmployeeColl}>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding BackgroundOfRow}"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>
<强>型号:强>
public class Employee
{
public int ID { get; set; }
public int Name { get; set; }
public int Surname { get; set; }
public Brush BackgroundOfRow { get; set; }
}
<强>视图模型:强>
private ObservableCollection<Employee> employeeColl;
public ObservableCollection<Employee> EmployeeColl
{
get { return employeeColl; }
set
{
employeeColl = value;
OnPropertyChanged("EmployeeColl");
}
}
private void PopulateDataGrid()
{
employeeColl = new ObservableCollection<Employee>();
for (int i = 0; i < 100; i++)
{
if(i%2==0)
employeeColl.Add(new Employee() { ID = i, BackgroundOfRow = Brushes.CadetBlue});
else
employeeColl.Add(new Employee() { ID = i, BackgroundOfRow = Brushes.Green });
}
}