1

私はDataGrid列を持っています:

<DataGridTextColumn Header="Freeze First Day" Binding="{Binding FirstDay, StringFormat=\{0:d\}}"/>

フィールドを入力済みから空白に変更できるようにしたいと考えています。(FirstDay は 型DateTimeです。) ただ、このままでは編集から離れると「値 '' を変換できませんでした。」 というエラーが発生します。これを修正するためにいくつかの方法を試しましたが、機能するものが見つかりません。

4

2 に答える 2

0

さて、私はあなたの問題の根源を得たと思います。これは、設定した StringFormat が原因で発生しています。コンテンツを削除するたびに、値は null になります。StringFormat は NULL 値を処理できないため、例外がスローされます。

回避策として、Converter を利用できます。ToString() メソッドを使用してオブジェクトを変換し、NULL でない場合は返すことができます。

//IN THE CONVERTER - YOU CAN RETURN AS,
{
     return (value!=null?value.ToString("{0:d}"):value);
} 
于 2013-07-23T18:01:04.653 に答える
0

Binding プロパティが null 許容の DateTime 型であるかどうかを確認することを検討してください。

private DateTime? firstDay;
public DateTime? FirstDay
{
get
{ 
   return firstDay;
}
set
{
   firstDay=value;
}
}
于 2013-07-23T17:43:25.953 に答える