使用WPF自定义控件,如何为我的自定义控件命名以便通过代码访问?

5

当我尝试使用 Name="id" 和/或 x:name="id" 时,我会收到编译器错误:

The Type 'MyName' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

当我没有指定这个时,我的控件运行得很好。有什么建议吗?


你能提供一下导致问题的XAML示例吗? - Christopher Bennage
2个回答

3
首先,正确的语法是x:Name,尽管只写Name通常(但不总是)也可以工作。
您的根级元素上的x:Class是否与代码后台文件的名称(和命名空间!)匹配?我知道某些版本的Blend和VS没有正确插入默认命名空间,当然,如果您已将其从默认值更改,则需要确保还更改了其他文件。

问题在于编译器在构建符号列表时活动的命名空间是什么。如果“x:”命名空间不活动(例如,如果您的XAML包含在MyNameSpace:MyControlName命名空间中声明的自定义控件),则找不到名称,控件将是匿名的。您可以通过使用x:name或完全导入MyNameSpace来解决此问题。 - AnotherParker

0

我之前遇到过这个问题,认为这是编译器的一个错误。最终,我只是在我的 XAML 中放置了一个命名的 ContentControl 并从代码后台将用户控件放入其中。希望有人能分享一个实际的解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接