Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按键获取资源中的对象_C#_Wpf - Fatal编程技术网

C# 按键获取资源中的对象

C# 按键获取资源中的对象,c#,wpf,C#,Wpf,这应该是WPF的初学者问题,但我找不到简单的答案。如何获得WPF中声明的对象的句柄 <Window x:Class="Testprj" xmlns:local="clr-namespace:Testprj"> <Window.Resources> <local:CustomValidation x:Key="validationObj"/> </Window.Resources> </Window> 但

这应该是WPF的初学者问题,但我找不到简单的答案。如何获得WPF中声明的对象的句柄

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

但它甚至找不到“validationObj”。有什么想法吗?

您询问如何访问codebehind中用XAML声明的控件

使用x:name

而不是在你的代码背后使用便便

通常,您不应该有代码隐藏,而应该使用MVVM设计模式来避免它

这是一个很好的起点:

我相信您是在问如何从代码背后使用该对象。我相信
this.FindResource(“validationObj”)
会奏效

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

您是否在问如何引用在WPF中实例化(创建)的C#代码中的对象?请注意,您必须将结果转换为CustomValidation才能访问myInstanceVar。我在示例中添加了类型转换。
var valObj = (CustomValidation)this.FindResource("validationObj");
var whatever = valObj.myInstanceVar;