通过Key获取资源中的对象

时间:2013-04-09 14:28:31

标签: c# wpf

这应该是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”。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我相信你问的是如何从后面的代码中使用该对象。我相信this.FindResource("validationObj")可以解决问题。

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

答案 1 :(得分:0)

你问如何访问代码隐藏中的XAML中声明的控件

使用x:name

而不是在你的代码隐藏中使用poo

http://msdn.microsoft.com/en-us/library/ms752290.aspx

通常你不应该有一个代码,并使用MVVM设计模式来避免它。

这是一个很好的起点: MVVM: Tutorial from start to finish?