在Visual Studio 2008 XAML Designer中引用嵌套类型

Ben*_*udo 5 wpf xaml visual-studio-2008

使用以下资源定义

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="AccountTypeValues">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="domain:Account+AccountType" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
Run Code Online (Sandbox Code Playgroud)

设计师抱怨说"未找到"类型'帐户+帐户类型'." 但是,嵌套类型存在,代码符合并运行没有问题.由于设计人员认为XAML不正确,因此不会显示XAML的图形再现.

我需要做些什么才能让设计人员将Account + AccountType识别为有效?我真的很喜欢设计师的视觉部分.

谢谢你,本

Qua*_*ter 4

看起来这是 Visual Studio 中的一个已知错误。来自http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/

我们请某人研究了 {x:Type Foo+Bar} 模式的使用,并在 VS2010 和 Blend4 中对其进行了测试。看起来它在 Blend 4 中的运行时、编译时工作正常,但在 VS2010 的 WPF 设计器中失败。

我们已提交一个错误,并将其发送给 WPF 设计器团队。

另请参阅http://connect.microsoft.com/VisualStudio/feedback/details/361509/xaml-designer-cannot-handle-typename-with-nested-classes

您可以创建一个调用Enum.GetValues(typeof(Account.AccountType))并绑定到该静态属性的静态属性,而不是使用ObjectDataProvider. 或者,如果您控制类型,则可以将枚举移到类之外。