我試圖做一些數據綁定到WPF上的枚舉,但我得到一個異常。當試圖做一個例外數據綁定到WPF上的枚舉
首先,我有我的NS聲明,指着我已經加入到項目中的參考:
xmlns:defs="clr-namespace:API.Definitions;assembly=API"
也:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
那我在窗口資源中添加枚舉:
<Window.Resources <ResourceDictionary> <ObjectDataProvider x:Key="someEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="defs:someEnum" /> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </ResourceDictionary> </Window.Resources>
我試圖使用它在組合框:
ComboBox ItemsSource="{Binding Source={StaticResource someEnum}}"
運行它,並得到一個XamlParseException:
Type reference cannot find type named '{clr namespace:API.Definitions;assembly=API}someEnum'.
我已經瀏覽此API參考和我可以清楚地看到枚舉並使用代碼 它如果我願意。我還測試了綁定到本地枚舉(未引用), ,這完美的作品。
一些答案意味着從xmlns:defs =「clr-namespace:API.Definitions; assembly = API」中移除程序集= API應該解決這個問題,但它不會。
感謝您的幫助。
你確定關於枚舉類型名嗎?它真的是'someEnum'還是'SomeEnum'?當類型不存在於引用的程序集中時,我會得到完全的錯誤消息。否則,它完美的作品。 – Clemens
絕對正面。爲了讓事情變得更加奇怪,我有另一個解決方案,它具有與上面描述的相同的引用程序集和相同的XAML代碼行。但是,另一個解決方案中的引用程序集也是一個附加項目。在這種情況下,所有工作都可以找到,但是當它是.dll時,我無法使它工作。 – gr3x
仍然適用於我,如果我也這樣做。你可以嘗試從代碼隱藏中訪問'someEnum'嗎? – Clemens