【发布时间】:2009-11-05 07:20:47
【问题描述】:
我有一个定义了 UserControl X 的程序集。在该程序集中,X 由子控件 Y 和 Z 组成。我希望将 Y 和 Z 标记为内部,以便只有 X 对我的程序集的用户可用。
我尝试通过更改 XAML 和代码隐藏类中的默认公共可访问性来实现这一点,写作:
<UserControl
x:Class="MyNameSpace.Y"
x:ClassModifier="internal"
...
和
namespace MyNameSpace
{
internal partial class Y : UserControl
{
...
当我这样做时,一切都编译得很好,但是在运行时初始化顶级用户控件 X 时,我在 X.xaml 中我说的那个点收到了可怕的错误AG_E_PARSER_BAD_TYPE
<my:X Name="TheX"></my:X>
在我编译和编辑时,我也有时(但并非总是)在 XAML 编辑器中看到这一行标记为错误,并显示有关 X 未知的消息。
将可访问性改回“公共”可立即解决问题。
因此,我的内部子控件似乎无法通过将它们标记为内部来从外部隐藏,因为这也将它们从 XAML 机制的某些部分隐藏起来。这个对吗?有什么办法可以解决它并隐藏我实际上不想分享的部分?
【问题讨论】:
标签: silverlight xaml silverlight-3.0