입력 형식이 잘못된 경우 Silverlight DataGrid에서 기본 오류 메시지를 변경하려고합니다. 예를 들어 숫자 필드에 글자를 입력합니다. 탭을 탭하면 "입력 형식이 올바르지 않습니다."라고 표시됩니다. 이 문제를 해결하는 방법을 살펴 보았습니다. 유효성 검사 속성을 사용자 지정 오류 메시지와 함께 넣는 것입니다. 문제는 내 물건이 RIA 서비스에서 오는 것입니다. 내 유효성 검사 특성에서 내 사용자 지정 오류 메시지를 무시하는 것 같습니다. 이 일을 폭로하기 위해 내가해야 할 일이 있습니까? 미리 감사드립니다.기본값 "입력이 올바른 형식이 아닙니다."RIA 서비스의 유효성 검사 오류
3
A
답변
0
개체에 메타 데이터가 설정되어 있지 않은 것 같습니다. using metadata for validation in silverlight 이렇게하면 생성되어 주석을 silverlight 프로젝트로 가져옵니다.
1
오류가 컨트롤이 아닌 속성에서 발생하기 때문에 유효성 검사 속성/메타 데이터 속성이 도움이되지 않습니다. 문자열 값을 전송할 수 없기 때문에 컨트롤에서 int
(또는 다른 숫자 유형)의 setter를 호출 할 수 없습니다.
public class NumericTextBox : TextBox
{
public NumericTextBox()
{
this.KeyDown += new KeyEventHandler(NumericTextBox_KeyDown);
}
void NumericTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Back || e.Key == Key.Shift || e.Key == Key.Escape || e.Key == Key.Tab || e.Key == Key.Delete)
return;
if (e.Key < Key.D0 || e.Key > Key.D9)
{
if (e.Key < Key.NumPad0 || e.Key > Key.NumPad9)
{
e.Handled = true;
}
}
}
}
0
: 가능한 해결 방법 이런 식으로 뭔가를 보이는 숫자 만 입력 할 수있는 사용자 정의 텍스트 상자를 사용하는 것입니다
나는 또한 기본 오류 메시지를 변경할 수 있습니다 알고 싶습니다 ... 유일한 해결책은 다음과 같습니다 (클라이언트 쪽).
public partial class MyEntity
{
public string MyField_string
{
get
{
return MyField.ToString();
}
set
{
decimal res = 0;
var b = Decimal.TryParse(value, out res);
if (!b)
throw new ArgumentException("Localized message");
else
this.MyField = Math.Round(res, 2);
}
}
partial void OnMyFieldChanged()
{
RaisePropertyChanged("MyField_string");
}
}
그런 다음 MyField 대신 MyField_string에 바인딩하십시오.