当我在 VS 2010 中创建 WPF 应用程序并在 Grid 中放置一个按钮时,我可以从 C# 代码访问控件。我的按钮类实例变量与 XAML“名称”字段中的名称相同。但是当我使用 VS 2012 RC 创建 WPF 项目时,我看不到控件的实例。可能是什么问题?VS 2010 和 2012 之间是否有任何默认项目设置差异?
问问题
11685 次
3 回答
4
如果您正在谈论代码隐藏,那么您应该能够访问该按钮而无需 再次声明它只需使用它的x:name
属性。现在,如果您在谈论 MVVM,那么您应该在使用按钮之前设置您的数据上下文。
当我使用 2012 (Release Candidate) 时,当我尝试访问在 xaml 中声明的元素时,我没有得到代码隐藏 cs 文件的智能感知(我必须在没有它的情况下编写代码),它甚至暗示没有该名称的元素,但项目编译和工作。所以我建议你尝试在没有智能感知的情况下编写代码并编译它。
YourButton.IsEnabled = false;
我想这是默认情况下在 VS 2012 中鼓励使用 MVVM 的,但这只是想法。
于 2012-09-01T22:10:23.377 回答
2
您需要确保您没有以静态方法访问控件。
于 2013-03-06T20:42:19.337 回答
0
我有同样问题的另一种经历。
当我尝试从后面的代码中访问元素时,没有智能感知显示它,我也无法使用它的方法。所以我尝试调试该项目,我发现有一个问题是合乎逻辑的并且不是语法错误,因此它没有显示在 XAML 代码或任何地方。我修复了它,然后我能够从后面的代码中访问它。确保您尝试访问的元素已正确定义并且具有逻辑正确的属性。
<ComboBox x:Name="_days" Selected="0" Width="50"/>
这是代码,Selected 属性在逻辑上不正确,因为组合框中没有元素,您不能选择第 0 个元素。
于 2013-03-13T17:12:17.070 回答