Настройка выражения привязки в столбце DataGrid WPF?

Как мы можем добавить выражение в Data Column таблицы данных, можно ли создать столбец, например DataGridTextColumn и установить Binding Expression? Если да, то как?

Поскольку я создаю свой собственный DataGridComputedColumn для WPF DataGrid, который позволяет установить выражение для этого столбца, так что во время выполнения, когда DataSource подключен, он автоматически оценивает этот вычисленный столбец во время выполнения.

Для примера у меня есть таблица EMP с 2 столбцами FirstName и LastName. Это будет DataGridTextColumn в WPF DataGrid. Теперь третий столбец будет моим собственным DataGridComputedColumn которого есть свойство как выражение, в котором я могу установить выражение как FirstName +' ' + LastName которое во время выполнения оценивает и генерирует третий столбец.

Спасибо Visshal

1 ответ

Вы не можете иметь выражение в свойстве привязки. Однако вы можете написать его с помощью 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>
 </window.resources>
...
<datagrid>
 <datagrid.columns>
 <datagridtextcolumn binding="{Binding Path=FirstName}">
 <datagridtextcolumn binding="{Binding Path=LastName}">
 <datagridtextcolumn binding="{Binding Converter={StaticResource converter}}">
 ...
 </datagridtextcolumn></datagridtextcolumn></datagridtextcolumn></datagrid.columns>
</datagrid>

licensed under cc by-sa 3.0 with attribution.