C# 컴파일러 및 Silverlight 2 설명서에 따르면 Silverlight는 DataTemplate 클래스에 FindName 메서드를 제공하지 않습니다. ContentPresenter 안에있는 테두리를 찾고 싶습니다. SilverLight 2에서 가장 좋은 방법은 무엇입니까?Silverlight의 DataTemplate에서 누락 된 FindName 메서드에 대한 대안이 있습니까?
4
A
답변
0
이 시나리오를 완전히 이해하지는 못했지만 DataTemplate에 대해 언급 한 이후로 템플릿을 사용하고 있다고 가정합니다.
템플릿을 사용하는 경우 테두리에 이름 (x : Name = "border")을 지정한 다음 OnApplyTemplate 메서드를 재정의하십시오. 이 메서드에서는 GetTemplateChild를 사용하고 사용 된 이름을 전달합니다. 경계에 대한 참조가 반환됩니다.
템플릿을 사용하지 않고 ContentPresenter에 대한 참조가있는 경우 자식의 Content 속성을 보는 재귀 함수를 작성할 수 있으며 테두리가 아닌 경우 해당 함수에서 동일한 함수를 호출합니다. 함유량.
3
테두리가 ControlTemplate이 아닌 DataTemplate 내에있는 경우 이전에 그 작업을 수행 할 수 있었던 유일한 방법은 VisualTreeHelper를 사용하여 필요한 요소를 찾는 것입니다.
ControlTemplate에서는 작동하지만 실제로는 DataTemplate 내부에서 그렇게 할 수는 없습니다. – MojoFilter