사용자가 몇 가지 값을 입력하는 대화 상자가 프로젝트에 있습니다. 그가 안타를 때 데이터베이스에 항목을 추가합니다. 내 데이터베이스 코드에 추가 그래서, Entity Framework을 사용하고는이 같은 것입니다 :WPF 유효성 검사 사용
TransactionItem _item = new TransactionItem();
_item.DoctorID = (int)cmbDoctor.SelectedValue;
_item.TransactionCategoryID = (int)_dlg.cmbCat.SelectedValue;
_item.TransactionMethodID = (int)_dlg.cmbMethod.SelectedValue;
_item.Amount = int.Parse(_dlg.txtAmount.Text);
_item.DocumentID = _dlg.txtDocNum.Text;
_item.Info = _dlg.txtInfo.Text;
_item.Date = _dlg.dteDate.SelectedDate.ToString();
_db.TransactionItems.Add(_item);
_db.SaveChanges();
그러나 문제는 바인딩과 검증 가능하게 아무것도이다. 내 창에서 빈 개체를 만들고 텍스트 상자를 바인딩하려고했지만 자체 문제가있어서 예상대로 작동하지 않았습니다. 사용자가 값을 입력하거나 OK를 눌렀을 때 모든 필드가 유효한지 확인하십시오. 예를 들어, 사용자가 아무 값도 입력하지 않은 경우 문제가 발생하는 경우, stringnotnull
유효성 검사기가 활성화되어 있어도 여전히 유효합니다. 하지만 가장 중요한 문제는 자동으로 텍스트 상자의 텍스트를 null로 설정하고 null 값으로 표시한다는 것입니다.
<TextBox Name="txtAmount" HorizontalAlignment="Left" Height="23" Margin="83,169,0,0" VerticalAlignment="Top" Width="224" Tag="T">
<TextBox.Text>
<Binding Path="myitem" ElementName="myWindow" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<Validators:StringNullValidationRule/>
<Validators:IsNumericValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
빈 텍스트 상자가 null이 아닙니다. 빈 문자열입니다. 동일하지 않습니다. –