0

DataGridを表示するためにWPF を使用していDataTableます。が動的に設定さAutoGenerateColumns = True れるため、列を自動生成するために使用しています。DataTable

特定のデータ型の列のセル値を変更する必要があります。たとえば、Column データ型が の場合、その場所にDateTimeいくつかを表示する必要があります。string

IValueConverterを確認しました。このようなコンバーターを、動的に生成される DataGrid 列にどのように接続しますか?

4

1 に答える 1

3

イベント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「これをオーバーライド」をテキストとして表示します。

于 2013-08-23T15:27:58.630 に答える