WPF使用绑定来分配静态资源

我正在尝试使用枚举来显示相应的图像。 为此我有一个值转换器,它将枚举转换为正确的资源名称。 我的资源定义如下:

      

这有效:

  

但事实并非如此,调用转换器并传回正确的值。 什么是正确的语法?

  

为完整起见,这是转换函数:

 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { switch ((AlarmCategory)value) { case AlarmCategory.Category1: return "AlarmCat1"; case AlarmCategory.Category2: return "AlarmCat2"; case AlarmCategory.Category3: return "AlarmCat3"; default: return null; } } 

我会在转换器中返回资源:

  

在您的转换器中执行以下操作:

 return Application.Current.FindResource("AlarmCat1") as BitmapImage; 

使用resourcedictionary(app.xaml)为整个应用程序设置资源

        

在你的词典(Dictionary1.xaml)

  

由于您的资源现在已在applicationlevel上定义,因此代码现在将找到您的资源并将其还原。

您不能绑定StaticResource密钥,因为它不是DependancyProperty 。 您必须使用converter直接将Source绑定到枚举,并更新转换器代码以返回Bitmap本身。

第二个选项是使用Triggers根据enum值设置Source属性。