2014-12-01 2 views
0

최근에 사용자 지정 숫자 컨트롤에 이중 값을 가질 수있는 문제가 발생했습니다. 그러나 특정 시나리오에서는 정수 만 사용하도록 제한해야합니다. 여기에는 두 가지 방법이 있습니다. 텍스트 상자의 textchangedeventhandler에서 처리하거나 사용자 정의 숫자 텍스트 상자에 대한 비헤이비어 클래스를 만듭니다. 성능, 표준 및 확장성에 따라 어느 것이 더 나은지 이해해야합니다. 나는 또한이 링크 How do I get a TextBox to only accept numeric input in WPF?을 통해 갔다. 그러나 표준별로 더 구체적인 대답이 필요합니다.이것은 어떤 방법입니까 WPF 컨트롤의 동작을 재정의하는 더 나은 방법 - 코드 뒤에 이벤트 처리기를 추가하거나 동일하게 동작 클래스 추가

+0

MVVM? 순수 MVVM - 동작, * 더티 * MVVM (또는 MVVM이 아님) - 이벤트. 다른 옵션은 사용자 정의 컨트롤을 만드는 것입니다. – Sinatr

+0

내 충고는 귀하의 커스텀 숫자 컨트롤의 textinputevent을 처리하고 Duoble 또는 Interger가 Regex – jadavparesh06

답변

0

내 생각은 이것입니다. 나는 상속 이상의 구성을 선호합니다. 이것에 관한 웹에 관한 많은 논의가 있습니다 (기술과 상관없이). 아마도 이것을 읽음으로써 시작하십시오 : http://en.wikipedia.org/wiki/Composition_over_inheritance

그래서 WPF 컨트롤의 동작을 변경하려면 일반적으로 첨부 된 속성 (또는 원할 경우 비헤이비어)을 초기 후크로 사용합니다. 어떤 경우에는 필자는 전체 리스너 클래스를 모니터링하고 컨트롤에 대한 입력에 반응하는 복잡한 수정 작업을 수행합니다.

그러나 컨트롤의 보호 된 멤버를 가져와야하는 경우가 있습니다. 이것이 피할 수 없다면 상속입니다.

따라서 건축 학적으로 먼저 연결된 속성 (또는 Behavie)을 먼저 상속하고 두 번째로 상속을 선호한다고 말합니다.

+0

을 사용하여 동작을 처리하는 것입니다. 첨부 된 속성 경로가 엄격하게 구성되지 않는다고 말할 수 있습니다. 내 요점은, 가능한 경우 상속을 피하는 것입니다. –