C# 如果datagrid的行项为true,如何将该行设为粗体?
假设我有一个自定义类:C# 如果datagrid的行项为true,如何将该行设为粗体?,c#,wpf,datagrid,C#,Wpf,Datagrid,假设我有一个自定义类: Class Elements{ int width; int height; bool isBol; } 总的来说,我有这样的想法: Public class MainWindow{ DataGrid dgv = new DataGrid(); List<Elements> elem = new List<Elements() { new Element(){width=100, hei
Class Elements{
int width;
int height;
bool isBol;
}
总的来说,我有这样的想法:
Public class MainWindow{
DataGrid dgv = new DataGrid();
List<Elements> elem = new List<Elements() {
new Element(){width=100, height = 200, isBold = false},
new Element(){ width=20, height=100, isBold = true}
};
dgv.ItemsSource = elem;
dgv.Columns.Add(new DataGridTextColumn() {
Header = "Width", Binding = new Binding("width")}
dgv.Columns.Add(new DataGridTextColumn() {
Header = "Height", Binding = new Binding("height")}
}
公共类主窗口{
DataGrid dgv=新DataGrid();
List elem=newlist我会在隐式样式中使用DataTrigger
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding isBold}" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
似乎无法实现此功能…(我确实添加了数据触发器)@toadams您的元素
类是否为isBold
属性使用属性或字段,并且它是公共的?它与您所问的代码不兼容。您需要public bool isBold{get;set;}
为了让它工作。我并没有使用那个确切的代码。但isBool是公共的,而且…我不确定它是属性还是字段…我相信它是字段,我只是在声明它时将它改为公共的bool isBold=false;@toadams将它切换到公共的bool isBold{get;set;}
看看这是否解决了问题。我认为依赖属性系统不能处理字段,您需要将其切换到具有get
和set
accessor@LouisRhys您应该发布一个新问题,并附上代码示例。您可能只需要将样式应用于您的第一个
r
,但这取决于代码的外观