如果该行项为true,如何使一行datagrid变为粗体?

时间:2012-07-27 18:05:06

标签: 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, 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")}

}

所以它只是一个包含2列,宽度和高度的简单表格。

如何根据bool值isBold使行显示为粗体?在上面的示例中,表格中的行20x100应该显示为粗体,其中100x200不应该是粗体。

我可以这样做吗?

1 个答案:

答案 0 :(得分:10)

我会在隐式DataTrigger

中使用Style
<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>