MVVM 프로젝트에서 두 개의 텍스트 상자 중 하나가 내 개체의 nullable 정수 필드에 바인딩되고 다른 하나는 문자열 필드에 바인딩됩니다. 문자열 속성에 바인딩 된 텍스트 상자에 값을 입력하면 뷰가로드되면 해당 값이 객체의 문자열 속성으로 업데이트된다는 것을 알 수 있습니다.Silverlight XAML에서 Databound nullable 값이 업데이트되지 않았습니다. XAML
그러나 내 개체의 nullable 정수 필드에 바인딩 된 텍스트 상자에 값을 입력 할 때 문제가 발생합니다. 적절한 정수 값이면 값이 업데이트됩니다. 내 개체의 nullable 정수 필드에 바인딩 된 텍스트 상자에 영숫자 문자열을 넣거나 그냥 비워두면 개체의 nullable 정수 필드가 업데이트되지 않습니다. 이전에 설정 한 내용은 그대로 유지됩니다.
예 : 숫자 입력란에 숫자 '7'을 입력하면 7로 업데이트됩니다. 이제 '7a'또는 'a7'또는 'asd'라고 말하기 위해 '7'에서 변경하거나 비워 두십시오. 값은 이전 값인 7로 유지됩니다.
Null 허용 유형을 변경하는 것 외에이 문제를 해결하려면 어떤 문제가 있습니까? 당신이 Nullable<Int32>
에 바인딩하여 TextBox
에 empty string
또는 alphabet values
를 입력 할 때마다 여기
감사합니다. 이미 변환기를 추가했습니다. 하지만 변환기의 문제는 null을 반환하여 텍스트 상자를 지울 수 있다는 것입니다. 사용자가 잘못된 값을 입력했는지 확인해야합니다. 텍스트 상자를 지우면 이익을 얻을 수 없습니다 ... 그리고 전체 숫자를 다시 입력해야합니다 (예 : 양식에 때때로 입력하는 16 자리 숫자와 같이) – user20358