在我的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>
此处的问题是无法识别行Value="{x:Static vm:MessageTypes.Error}"
。编译错误:
'MessageTypes' type not found.
答案 0 :(得分:3)
枚举被声明为嵌套类型(在类MyViewModelClass中),x:Static
标记扩展不支持。
你应该这样声明:
namespace MyViewModel
{
public enum MessageTypes
{
Info = 0,
Error = 1
}
public class MyViewModelClass
{
...
}
}