我的 MS SQL 表( NumIE )中有一列是整数类型,当它包含值-1时,表示它是空的。我想告诉DataGrid
中的这个特定列,当我的表数据列的值为-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 };
}
}