如何在WPF中将一个组合框绑定到另一个项目的枚举?

时间:2014-06-18 11:12:47

标签: c# wpf combobox enums

这是我的问题。 我有一个包含组合框的WPF应用程序。 我想将这个组合框绑定到另一个项目的枚举。

在我的应用程序(AdapterApp)中,我尝试了这个:

        xmlns:System="clr-namespace:System;assembly=mscorlib"
        xmlns:local="clr-namespace:Adapter"

    <Window.Resources>
        <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" 
                                    ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="local:MyEnum"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>

<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" HorizontalAlignment="Left" Margin="117,113,0,0" VerticalAlignment="Top" Width="150"/>

在我的其他项目中:

namespace Adapter
{
 public enum MyEnum
 {
    Lent = 0,
    Rapide
  };
 }

我有这个错误:

  

名称&#34; MyEnum&#34;命名空间中不存在&#34; clr-namespace:Adapter&#34;。

我错了什么?

1 个答案:

答案 0 :(得分:2)

您应该添加对其他项目的引用,然后将otherProjectNamespace名称空间定义为xmlns:otherProjectNamespace="clr-namespace:Adapter;assembly=MyOtherProject"

如果未指定程序集,编译器会尝试在当前程序集中找到Adapter命名空间(即组件应用程序)。