관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

TextBox 컨트롤 TextChanged 이벤트 두번 발생문제 본문

ⓦindows Phone 7/Development

TextBox 컨트롤 TextChanged 이벤트 두번 발생문제

가이브 2011. 6. 29. 20:04

(실제 폰에서는 모르겠으나) TextBox 컨트롤에서 TextChanged 이벤트를 주고 이를 실행해보면 이벤트가 두번 실행되는 버그아닌 버그(?)가 있습니다. 또한 TextBox에 xaml 코드상 기본값이 지정되었을 때 실행시 자동으로 이벤트가 호출됩니다.

이는 내부적으로 TextBox 가 하나 더 있기 때문이라는데요. (외국사람들이 Metro UI 디자인 때문이랍니다)
Blend 에서 스타일을 벗겨내보면 확인할 수 있습니다.






생성된 코드의 Resource의 <Style>에서 앞, 뒤를 생략하고 중요한 부분만 뽀려내보면 위처럼 DisabledOrReadonlyContent 라는 이름의 텍스트박스가 하나 더 있는데요. 이름으로 봐서 아마 IsDisabled, IsReadOnly 속성이 변경되면 원래의 것은 없어지고 얘가 보여지는 것 같습니다. 

여튼 두번 실행되는 것을 해결하기 위해서는 저 텍스트박스를 없애버리면 된다고 하는데, VisualState 의 대상이 없다며 오류를 발생하더군요. 만약 오류 발생이 안난다 해도 여간 불편한게 아닙니다.



그래서 bool 값 하나를 잘 가지고 놀아주면 이런 버그를 피할 수 있더군요.

이 같은 정확한 이유나 더 편리한 방법을 사용하시는 분들은 댓글 남겨주시기 바랍니다.
즐프하세요~

반응형
Comments