簡體   English   中英

根據列數據類型更改DataGrid的單元格值

[英]Change cell value of DataGrid based on column data type

我正在使用WPF DataGrid來顯示DataTable 我使用AutoGenerateColumns = True來自動生成列,因為DataTable是動態設置的。

如果列的單元格值是特定的數據類型,則需要更改它。 例如,如果Column數據類型為DateTime ,那么我需要在其位置顯示一些string

我檢查了IValueConverter 如何將此類轉換器附加到動態生成的DataGrid列?

使用事件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屬性的任何列中的結果均顯示為“ Override This”作為其文本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM