使用以下资源定义
<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识别为有效?我真的很喜欢设计师的视觉部分。
谢谢你, 本
答案 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设计师团队。
您可以创建一个静态属性来调用Enum.GetValues(typeof(Account.AccountType))
并绑定到该属性,而不是使用ObjectDataProvider
。或者,如果您控制类型,则可以将枚举移到类外。