2016-08-11 10 views
1

私は、CellTemplateのTextBlockとCellEditingTemplateのDatePickerを持つDataGridTemplateColumn(プログラムで作成)を持っています。DatePickerから日付をクリアできるようにする

DatePickerの値はDateTimeにバインドされていますか?

グリッドがロードされているセルに日付がある場合、日付をクリアすると検証の問題が発生します。空の値はバインドされたプロパティに送信されません。 空の値を許可するようにDatePickerに設定があります(見つけられませんでした)?
null可能なバインドされたプロパティを処理するためにコンバータが必要ですか?任意の洞察力のための

おかげ -

答えて

0

私は同じ問題に出くわしたが、それは、製品の数量を入力するためのテキストボックスとありました。それはバインドされたプロパティとして整数を持っていました。それは入力されたいくつかのquanityと正しく動作するために使用されました。しかし、何らかの値を入力した後にテキストボックスが空になったとき、そのプロパティは前に入力された値を現在の値として持っていました。

これを解決するには、文字列型のプロパティをbindedプロパティとして設定します。

同じことができます。文字列型のプロパティをDatePickerでバインドします。 DatePickerで日付が選択されているので、常に日付形式がわかります。また、DatePickerTextBoxをアプリスタイルで読み取り専用にして、ユーザーが入力して日付を入力させないようにすることもできます。

DatePickerをクリアすると、下にあるバインドされたプロパティにnullまたは空の文字列が含まれていると思います。

あなたは同等のDateTimeオブジェクトを取得する

DateTime.Parse方法でその文字列プロパティを使用することができます。 try/catchブロック内の日付を解析して、空文字列/空文字列の場合を処理してください。

+0

返信いただきありがとうございます。コードを深く掘り下げてみると、コンバーターが関わっていることがわかりました。 ConvertBack()で問題を修正しました。 'string.Empty'ではなく' null'を返します。 – Number8

+0

素晴らしい。あなた自身で解決できることを知っておいてよかったです。あなたはあなたのコードにすでにコンバータ設定があったとは言わなかった。 –

関連する問題