使用事件AutoGeneratingColumn
並將轉換器附加到列的綁定。
事件
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyType.Equals(typeof(DateTime)))
{
var column = (DataGridTextColumn)e.Column;
var dateTimeConverter = new DateTimeConverter();
((Binding)column.Binding).Converter = dateTimeConverter;
}
}
轉換
public class DateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return "Override This";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
結果在綁定到一個DateTime
屬性顯示 「覆蓋這個」 作爲其文本
_then我需要的任何列在其位置顯示一些字符串_格式化日期等字符串?或者像「我被替換」的字符串? – Shoe
@Jim,我以DateTime和字符串數據類型爲例,它可以是任何東西,我只需要在將動態生成(自動生成)的列上附加值轉換器。 – Brij