我正在WPF中将值绑定到我的DataGrid,我想知道我该怎么做。
我在模型中有一个int字段(类别),我想在我的DataGrid中显示一个描述字符串。
示例: “类别”字段的值分别为1,2,3,4,5,每个值都有一个说明,如何显示说明而不是datagrid绑定中的代码?
我尝试在ViewModel中创建一个方法,该方法将返回字符串描述。
//ViewModel
public string GetDescription(int pCategory)
{
if(pCategory == 1)
return "01. Description";
else if(pCategory == 2)
return "02. Description";
else if(pCategory == 3)
return "03. Description";
else
return "None";
}
//XAML DataGrid binding code
<DataGridTextColumn IsReadOnly="True" Header="Category" Binding="{Binding GetDescription(Category)}"/>
答案 0 :(得分:0)
在视图中使用DataGridTemplateColumn
并添加数据触发器,就像这样
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Text" Value="None"/>
<Style.Triggers>
<DataTrigger Binding="{Binding pCategory}" Value="1">
<Setter Property="Text" Value="01. Description"/>
</DataTrigger>
<DataTrigger Binding="{Binding pCategory}" Value="2">
<Setter Property="Text" Value="02. Description"/>
</DataTrigger>
<DataTrigger Binding="{Binding pCategory}" Value="3">
<Setter Property="Text" Value="03. Description"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>