2012-05-16 3 views
5

약 2 시간 동안 봤는데 아무 것도 찾지 못했습니다. Windows 8 Metro : 유효성 구현

다음과 같은 경우를 감안할 때 :

public class Person 
{ 
    [Required] 
    public string Name { get; set; } 
} 

XAML : MVC3에서이 같은

<TextBox Text="{Binding Name, Mode=TwoWay}" /> 

어떻게에 대해 자동으로 UI에 검증의 피드백을 얻을 갈 것?

(아, 그리고이 통합 같은 DataAnnotations [필수] 여부를 사용할 수있을 것인지 정말 순간에 상관하지 않습니다)

이 어떤 도움이 많이 감사를!

답변

13

WinRT XAML Toolkit에 뭔가를 추가했습니다. 그것은 TextBoxValidationExtensions라고하고이 같은 검증을 정의 할 수있다 :

[Flags] 
public enum ValidTextBoxFormats 
{ 
    Any = 0, 
    NonEmpty = 1, 
    Numeric = 2, 
    NonEmptyNumeric = 3 
} 

전체 코드는 여기에 공유하는 약간 너무 깁니다 :

<TextBox 
    Width="400" 
    HorizontalAlignment="Left" 
    xyzc:TextBoxValidationExtensions.Format="NonEmptyNumeric" 
    xyzc:TextBoxValidationExtensions.InvalidBrush="Red" 
    xyzc:TextBoxValidationExtensions.ValidBrush="Green" /> 

형식은 현재로 정의됩니다. 기본 브러쉬 등

+0

이것은 트릭을하는 것 같습니다! 어쨌든, 이것을 XAML보다는 코드로 어떻게 설정할 수 있는지 설명해 주시겠습니까? – Shion

+0

MVVM을 사용하는 경우 텍스트 및 서식 속성을 사용하여 필드에 대한 일종의보기 모델이 있으므로 xyzc : TextBoxValidationExtensions.Format = "{Binding Format}"과 같은 바인딩을 설정하면됩니다. 그 뒤에 코드를 작성하면 TextBoxValidationExtensions.SetFormat (myTextBox, ValidTextBoxFormats.Numeric)을 호출합니다. –

+0

또 다른 해결책은 Jerry Nixon이 그의 블로그 [여기에 - Let 's Code! Windows Store 앱에서 유효성 검사 처리] (http://blog.jerrynixon.com/2014/07/lets-code-handling-validation-in-your.html). –

0

그냥 같은 경우 textbox 사용 pointerexited에서, 특정 XAML 컨트롤에서 이벤트를 사용하여 코드에서 함수를 작성을 수정, 새로운 유효성 검사 규칙을 추가 - 당신은 코드 플렉스의 코드를 꺼내 원하는대로 수정할 수 있습니다 필요한 검증을 수행합니다.

+0

질문에 이미 대답했지만 : 귀하의 제안은 코드를 유지 보수하기가 매우 어렵고 어려울 수 있습니다. 필립 스카 쿤 (이미 받아 들여진 답변!)은 이미 완벽하게 대답했습니다. :) – Shion

-1

프레임 워크에서 제공되는 지원을 기반으로 텍스트 필드의 "유효성을 검사하는"특별한 아이디어는 매우 드물고 흔하지 않은 것으로 간주되어 전혀 고려하지 않아도됩니다. 우리가 알고있는 바에 따르면, 당신이하고 싶은 일이 모두 공통적이거나 유용하다면 잘 설계되고 포괄적 인 프레임 워크에서 그러한 특징에 대한 고려가있을 것입니다.

+0

URL, 숫자, 기본 전자 메일 또는 그 밖의 다른 요소에 대해 텍스트 상자의 유효성을 검사해야하는 이유는 무엇입니까? 물론 버튼 하나를 클릭하여 유효성 검사를 수행하고 텍스트 상자에 필요한 스타일을 추가 할 수 있습니다.하지만 필요한 경우가 아닌 경우도 있습니다. 또한 프레임 워크에 없기 때문에 그것이 바람직하지 않거나 필요하지 않다는 것을 의미하지는 않습니다. – Shion

+0

@Shion은 사전을 찾고 '풍자'라는 단어를 찾습니다. – HappyNomad

+0

진지한 대답과 같은 것을 의미하는 사람들이 있습니다 ... – Shion

관련 문제