myObject の配列から ItemsSource を取得する WPF DataGrid (.NET Framework 4) があります。myObject の列/変数の 1 つは DateTime です。DataGrid 行の描画イベントを変更して、各オブジェクトの DateTime 以外の列のセルに何か他のものを表示できるようにする方法はありますか?
1267 次
1 に答える
0
False に設定し、DataGridTemplateColumn などAutoGenerateColumns
を使用して列を手動で定義します。DataGridTextColumn
イベントを使用して編集AutoGeneratingColumn
します。次を追加して、列の出力を変更できますIValueConverter
。
void MyGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
// check if the current column is the target
if (e.PropertyName == "MyDateproperty")
{
// assuming it's a Text-type column
var column = (e.Column as DataGridTextColumn);
if (column != null)
{
var binding = column.Binding as Binding;
if (binding != null)
{
// add a converter to the binding
binding.Converter = new StringFormatConverter();
}
}
}
}
ここで、通常の方法で定義StringFormatConverter
し、日付/時刻の値を任意の値に変換します。
public class StringFormatConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var col = (DateTime?)value;
return (col == null) ? null : col.Value.ToShortDateString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
于 2012-09-18T22:28:59.150 に答える