2013-04-09 32 views
0

这对WPF应该是一个初学者的问题,但我找不到一个简单的答案。你如何获得WPF中声明的对象的句柄?通过键获取资源中的对象

<Window x:Class="Testprj" xmlns:local="clr-namespace:Testprj"> 
    <Window.Resources> 
     <local:CustomValidation x:Key="validationObj"/> 
    </Window.Resources> 
</Window> 

如果我没有弄错,上面的代码是用“validationObj”键创建一个“CustomValidation”对象的实例。现在,假设每个“CustomValidation”对象都有一个名为“myInstanceVar”的实例变量,如何从后面的代码中获取myInstanceVar的值?

我试图做的是一样的东西(伪):

validationObj.myInstanceVar 

但它无法找到甚至“validationObj”。有任何想法吗?

+0

您是否问过如何在WPF中实例化(创建)的C#代码中引用对象? – tatmanblue 2013-04-09 14:35:48

+0

@tatmanblue是的。 – David 2013-04-09 14:40:10

回答

2

我相信你问你如何使用该对象从后面的代码。我相信this.FindResource("validationObj")会诀窍。

var valObj = (CustomValidation)this.FindResource("validationObj"); 
var whatever = valObj.myInstanceVar; 
+0

请注意,您必须将结果转换为CustomValidation才能访问myInstanceVar。 – cunningdave 2013-04-09 15:21:09

+0

我在我的示例中添加了类型转换。 – Steve 2013-04-09 16:06:53