タグごとに、これはEntity Framework、C#、Winformsの質問です。バインドされたdatetimeに空白のテキストボックス値をnullとして渡す方法
私は、自分のエンティティのnull可能な日時フィールドにバインドされたテキストボックスデータを持っています。私は、テキストボックスの内容を削除して空白のままにすると、エンティティにヌル値を戻したいと思います。
テキストボックスCausesValidationプロパティはtrueです。テキストボックスの内容を削除すると、有効な日付を入力せずにそのテキストボックスを残すことができません。
は、ここに私の検証イベント
private void txtDueDateDetail_Validating(object sender, CancelEventArgs e)
{
string errorMsg;
if (!ValidDate(txtDueDateDetail.Text, out errorMsg))
{
// Cancel the event and select the text to be corrected by the user.
e.Cancel = true;
txtDueDateDetail.Select(0, txtDueDateDetail.Text.Length);
// Set the ErrorProvider error with the text to display.
this.epNew.SetError(txtDueDateDetail, errorMsg);
}
Debug.Write("text: " + txtDueDateDetail.Text);
}
public bool ValidDate(string pTextDate, out string errorMessage)
{
DateTime tempDate;
errorMessage = "";
if (pTextDate.Length == 0)
{
//pass a null date...how?
return true;
}
DateTime.TryParse(pTextDate, out tempDate);
if (tempDate == DateTime.MinValue)
{
errorMessage = "date must be in format MM/dd/yyyy";
return false;
}
return true;
}
任意のアイデアが参考になるです。
TextBoxのtextプロパティがnullでないため、txtDueDateDetail.Text = nullという行はわかりません。値をすぐに読み取った場合は、空でない文字列が返されます。私は別のプロパティ(例えばTag)をバインドしようとし、バリデーションイベントでそのプロパティを更新しますが、EFでの作業方法がわからないのでここでは止めます。投稿に感謝します。 – Steve