如何在DataGridView中显示某些列?

时间:2018-02-07 14:39:21

标签: c# wpf datagrid

我的 MS SQL 表( NumIE )中有一列是整数类型,当它包含值-1时,表示它是空的。我想告诉DataGrid中的这个特定列,当我的表数据列的值为-1时显示空字段,并在不同于-1时显示其实际值。

你能告诉我一些如何将我的列格式化为这个特定逻辑的例子吗?

1 个答案:

答案 0 :(得分:1)

您可以使用DataGridTemplateColumn创建DataTrigger

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.PropertyName == "NumIE")
    {
        const string CellTemplate = "<DataTemplate xmlns =\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
                    "   <TextBlock>" +
                    "       <TextBlock.Style>" +
                    "           <Style TargetType=\"TextBlock\">" +
                    "               <Setter Property=\"Text\" Value=\"{Binding NumIE}\" />" +
                    "               <Style.Triggers>" +
                    "                   <DataTrigger Binding=\"{Binding NumIE}\" Value=\"-1\">" +
                    "                       <Setter Property=\"Text\" Value=\"\" />" +
                    "                   </DataTrigger>" +
                    "               </Style.Triggers>" +
                    "           </Style>" +
                    "       </TextBlock.Style>" +
                    "    </TextBlock>" +
                    "</DataTemplate>";

        e.Column = new DataGridTemplateColumn() { CellTemplate = System.Windows.Markup.XamlReader.Parse(CellTemplate) as DataTemplate };
    }
}