2011-01-17 4 views
1

텍스트 상자가있는 사용자 정의 컨트롤이 있고 전체 주 창에서 정보를 지우는 기본 폼에 지우기 단추를 사용하고 있습니다. 취소 버튼을 클릭하면 사용자 정의 컨트롤의 텍스트 상자를 지우고 싶습니다. 나는 이것을 할 수있는 쉬운 방법을 찾지 못했습니다. 나는 C#에서 컨트롤 이름을 참조하려고 시도했다 "." 그러나 텍스트 상자의 이름이 표시되지 않습니다. 어떤 도움을 주시면 감사하겠습니다!WPF C#에서 사용자 정의 컨트롤에서 TextBox를 지우는 방법?

답변

1

WPF는 UserControl에 컨트롤을 private으로 선언합니다. 당신의 TextBoxpublic하려면 당신이 같은 FieldModifier로 선언 : x는 XAML 네임 스페이스 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"입니다

<TextBox x:FieldModifier="Public" /> 

. 그러나 TextBox을 지우는 권장 방법은 속성에 바인딩 한 다음 속성을 지우는 것입니다.

+0

멋진, 정확히 내가 뭘 찾고 있었는지, 고마워! – Drew

1

외부 클래스 나 코드에서 UserControl 내의 컨트롤에 직접 액세스하지 마십시오. 간단한 메커니즘은 UserControl 내부의 모든 관련 컨트롤과 정보를 지우는 Clear() 메서드를 UserControl에 추가하는 것입니다.

+0

확인 방법을 만들었습니다. 기본 창 CS 파일에서 액세스 할 수있는 방법이 있습니까? – Drew

+0

Clear() 메서드는 사용자가 만든 UserControl이라고 가정하고 UserControl.xaml.cs 파일 (public)로 이동하는 것이 이상적입니다. 그러면 TextBox를 쉽게 지울 수 있습니다. UserControl이 DataBinding을 사용하고 있다면 바인딩 된 요소가 지워 졌는지 확인해야합니다. – Ryan

1

텍스트 상자는 UserControl의 DataContext에 바인딩 될 수 있습니다. 따라서이를 지우는 방법은 TextBox의 Text 속성에 바인딩 된 속성을 빈 문자열로 설정하는 것일 수 있습니다.

관련 문제