从视图MVVM WPF访问视图模型中定义的枚举类型

从视图MVVM WPF访问视图模型中定义的枚举类型,wpf,xaml,mvvm,binding,Wpf,Xaml,Mvvm,Binding,在我的MVVM WPF应用程序中,我声明了一个枚举: 查看模型: namespace MyViewModel { public class MyViewModelClass { public enum MessageTypes { Info = 0, Error = 1 }; } } xmlns:vm="clr-namespace:MyViewModel;assembly=MyViewMod

在我的MVVM WPF应用程序中,我声明了一个枚举:

查看模型

namespace MyViewModel
{
    public class MyViewModelClass  
    {
      public enum MessageTypes
      {
          Info = 0,
          Error = 1
      };
    }
}
xmlns:vm="clr-namespace:MyViewModel;assembly=MyViewModelAssembly"

<Image>
   <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="/Common.Images;component/Images/Info.png"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding MessageTypes}" Value="{x:Static vm:MessageTypes.Error}">
                    <Setter Property="Source" Value="/Common.Images;component/Images/Cancel.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
   </Image.Style>
</Image>
现在从视图中,我尝试访问它,以便将其用作控件中的静态资源,因此:

查看

namespace MyViewModel
{
    public class MyViewModelClass  
    {
      public enum MessageTypes
      {
          Info = 0,
          Error = 1
      };
    }
}
xmlns:vm="clr-namespace:MyViewModel;assembly=MyViewModelAssembly"

<Image>
   <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="/Common.Images;component/Images/Info.png"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding MessageTypes}" Value="{x:Static vm:MessageTypes.Error}">
                    <Setter Property="Source" Value="/Common.Images;component/Images/Cancel.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
   </Image.Style>
</Image>

枚举被声明为嵌套类型(在类MyViewModelClass中),
x:Static
标记扩展不支持该类型

您应该这样声明:

namespace MyViewModel
{
    public enum MessageTypes
    {
        Info = 0,
        Error = 1
    }

    public class MyViewModelClass  
    {
        ...
    }
}