2009-08-16 6 views

답변

8

은 다음 Visual Studio는 자동으로 XAML 파일의 명명 된 요소에 대한 참조를 포함하는 멤버 변수를 생성해야합니다. 따라서 x : Name = "myButton"이있는 Button이 있으면 this.myButton을 통해이 버튼에 액세스 할 수 있습니다.

당신이 아닌 다른 곳에서 명명 된 요소를 참조 할 경우 코드 숨김 파일, 당신은, 지정된 요소 요소에 FindName을 호출 할 수 있습니다 예 :에는 myGrid가에 대한 참조입니다

Button myButton = myGrid.FindName("myButton") as Button; 

문제의 표.

+0

우트를 사용해야 있도록해야합니다! 이 작품. 좀 더 복잡하지만 잘 작동하는 대안을 찾았습니다. private button myButtnon; 의 foreach (myGrid.Children에 FrameWorkElement FE) { 경우 (fe.GetType() == 대해서 typeof (버튼)을 myButton = FE는 버튼과; } – Maciek

+0

참고하여 myButton 외부 코드에서 내부에도 따라서 접근성 필드 것이라고 코드 숨김 파일 FindName에 의지하지 않고도 액세스 할 수 있습니다. – AnthonyWJones

+0

이 간단한 대답을 얼마나 오래 검색했는지 알았습니까? 감사합니다. – Arrie

1

x : Name이있는 각 컨트롤에는 XAML에 대해 만들어지는 부분 클래스의 필드가 만들어집니다. 이 입력란에는 내부 액세스 기능이 있습니다. 따라서 "코드 숨김"cs (그 용어가 싫은 이유는 무엇입니까?)에서 코드를 사용하면 코드에 직접 액세스하여 컨트롤 이름을 사용할 수 있습니다. 당신이 작성하는 코드는 코드 숨김 XAML 파일의 파일 인 경우

+0

당신은 너무 친절하고 정교합니까? – Maciek

+0

나는 그가 x : Name = "MyNamedControl"을 가지고 있다면 그가 의미한다고 생각한다. 당신이 그것을 컴파일하면, Reference.g 파일은 자동으로 availble을 그냥 this.MyNamedControl – Paully

+0

를 입력 할 수 있습니다하지만 당신은 템플릿을하고 있다면, 이런 일이되지 않으며 당신이 FindName에게 – Paully