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
,但这取决于代码的外观