2010-02-17 58 views
2

我創建了一個usercontrol,它接受枚舉類型並將該枚舉的值賦給該usercontrol中的ComboBox控件。很簡單。 我在DataTemplates中使用此用戶控件。出現嵌套類型時會出現問題。 我分配,使用這個符號寫入時的設計時錯誤xaml中的嵌套類型

EnumType = 「{X:類型myNameSpace對象:ParentType的+ NestedType}」

它工作正常運行時。但在設計時它會拋出錯誤說

Could not create an instance of type 'TypeExtension' 

爲什麼? 由於這個原因,我無法在設計時看到我的窗口。任何幫助?

+0

你可以發表一些有點代碼嗎? – punker76 2011-11-18 19:50:00

+0

這是在Visual Studio嗎?混合? – 2011-12-07 20:55:18

+0

@AaronMcIver:這是在Visual Studio中,我沒有使用Blend進行檢查。 – viky 2011-12-12 04:41:17

回答

1

According to Rob Relyea形式微軟這是在VS2008/2010設計器中的缺陷。

我們有人看着{x:Type Foo + Bar}模式的使用,並在VS2010和Blend4中測試了 。它似乎在運行時正常工作, Blend 4中的CompileTime,但在VS2010的WPF設計器中失敗。

我們提交了一個錯誤,並將其發送給WPF設計團隊。

1

根據this post您需要利用MarkupExtension類提供的功能。

但還有另一種途徑周圍:

<ObjectDataProvider 
    MethodName="GetValues" 
    ObjectType="{x:Type sys:Enum}" 
    x:Key="NestedEnumDataProvider"> 
    <ObjectDataProvider.MethodParameters> 
     <x:Type TypeName="myNamespace:ParentType+NestedType"/> 
    </ObjectDataProvider.MethodParameters> 
</ObjectDataProvider> 
相關問題