C# 在WPF DataGrid列中设置绑定表达式?
由于我们可以在数据表的数据列中添加表达式,是否可以创建类似C# 在WPF DataGrid列中设置绑定表达式?,c#,wpf,datagrid,expression,C#,Wpf,Datagrid,Expression,由于我们可以在数据表的数据列中添加表达式,是否可以创建类似DataGridTextColumn的列,并设置绑定表达式? 如果是,那怎么办 当我为WPF DataGrid创建自己的DataGridComputedColumn时,它允许为该列设置表达式,以便在连接数据源时在运行时自动计算该计算列 例如,我的表EMP有两列FirstName和LastName。这将是WPF DataGrid中的DataGridTextColumn。现在,第三列将是我自己的自定义DataGridComputedColum
DataGridTextColumn
的列,并设置绑定表达式?
如果是,那怎么办
当我为WPF DataGrid
创建自己的DataGridComputedColumn
时,它允许为该列设置表达式,以便在连接数据源时在运行时自动计算该计算列
例如,我的表EMP有两列FirstName和LastName。这将是WPF DataGrid
中的DataGridTextColumn
。现在,第三列将是我自己的自定义DataGridComputedColumn
,它具有类似于属性的表达式,在该表达式中,我可以将表达式设置为FirstName+“”+LastName
,在运行时计算并生成第三列
谢谢
Vishal绑定属性中不能有表达式。但是,您可以使用
IValueConverter
编写它:
public class FirstAndLastnameConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var emp = value as Employee;
return string.Format("{0} {1}", emp.FirstName, emp.LastName);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
在您的XAML中:
<Window.Resources>
<me:FirstAndLastnameConverter x:Key="converter" />
</Window.Resources>
...
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=FirstName}"/>
<DataGridTextColumn Binding="{Binding Path=LastName}"/>
<DataGridTextColumn Binding="{Binding Converter={StaticResource converter}}"/>
...
</DataGrid.Columns>
</DataGrid>
...
...