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

时间:2010-06-21 20:08:26

标签: wpf visual-studio-2008 xaml

使用以下资源定义

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="AccountTypeValues">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="domain:Account+AccountType" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

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

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

谢谢你, 本

1 个答案:

答案 0 :(得分:4)

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

  

我们有人看看使用   {x:输入Foo + Bar}模式并测试它   在VS2010和Blend4中。看起来   它在Runtime,CompileTime,   在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。或者,如果您控制类型,则可以将枚举移到类外。