2010-08-16 47 views
1

类假设我有一个用户控件这样的类型:WPF:获取的代码隐藏通过的ElementName

Somehwere在我的应用我得到递给名称:SampleTextBlock。我可以找到相应的框架元素的名称。但是我怎样才能从该Framework-Element中找到Code-Behind类的类型?

这是我指定的样品中寻找:

Type usercontrolTypeOfElement = typeof(SomeClass); 

但如何从名为SampleTextBlock TextBlock的FrameworkElement的获得SomeClass的?

回答

2

你的意思是这样的:

FrameworkElement current=textBlockInstance; // your TextBlock 
while(null != current && !(current is UserControl)){ 
current=current.Parent as FrameworkElement; 
} 
if(null != current){ 
    Type typeOfUserControl=current.GetType(); 
    MessageBox.Show(typeOfUserControl.Name); 
} 
+0

是的,就是这样。我希望有一种比遍历父母更优雅的方式,但我想不是。 感谢您的帮助。 – Falcon 2010-08-16 12:03:33