エンティティ フレームワーク (SQL サーバーを使用) エンティティの日付フィールドにバインドされている日付ピッカーを使用している WPF アプリケーションがあります。次のようにバインドします。
<DatePicker x:Name="dtComplete" Style="{StaticResource FTC_DatePicker}" Grid.Column="2" Grid.Row="7" Grid.ColumnSpan="3"
Text="{Binding dtComplete, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
バインディングは正常に機能し、エンティティに更新できます。
私の問題は、基になるデータベース フィールドが null の場合、必要な日付の透かしを選択することですが、その透かしが検証され、日付形式ではないとして返されることです。透かしを保持したいのですが、ユーザーが入力を変更するまで検証トリガーはありません。ValidatesOnDataErrors=True
また、ビジネスロジックを評価するために別の場所で使用しているため、保持したいと考えています。
私が何を意味するかを確認するために、日付に null 値を指定して datepicker を使用するフォームを次に示します。検証エラーが表示されます。
デバッグ時の出力ウィンドウには、次の検証変換エラーが表示されます。
System.Windows.Data エラー: 7: ConvertBack は値 '' (タイプ 'String') を変換できません。BindingExpression:Path=dtComplete; DataItem='job_BF0D6052EEADCDA3C2B6D1A174D77C322D5AB16A035F214705610767131A80F0' (HashCode=17930557); ターゲット要素は 'DatePicker' (Name='dtComplete') です。ターゲット プロパティは 'Text' (タイプ 'String') です FormatException:'System.FormatException: String は有効な DateTime として認識されませんでした。System.DateTime.Parse (文字列 s、IFormatProvider プロバイダー) で System.Convert.ToDateTime (文字列値、IFormatProvider プロバイダー) で System.Convert.ChangeType (オブジェクト値、型 conversionType、IFormatProvider プロバイダー) で System.Windows.Data.BindingExpression .ConvertBackHelper(IValueConverter コンバーター、オブジェクト値、タイプ sourceType、オブジェクト パラメーター、
ユーザーが入力を変更するまで、誰かがこの検証エラーを取り除くのを手伝ってくれますか?
前もって感謝します