在WPF Treeview中根据枚举绑定图标

我在treeview TextBox,我想转换我的枚举:

 public enum AcceptationStatusGlobalFlag { NotReady = 0, Ready = 1, AcceptedByAdmin=2 } 

到图标。 将有3个图标,比如ready.jpg,notready.jpg和AcceptedByAdmin.jpg

国家和地区有泳池AcceptationStatusGlobalFlag,我想要显示这个枚举/图标

            <!---->         <!---->        

创建一个值转换器

它将获取您的枚举值并返回相应图标的文件名。

 [ValueConversion(typeof(AcceptationStatusGlobalFlag), typeof(string))] public class AcceptationStatusGlobalFlagToIconFilenameConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { switch ((AcceptationStatusGlobalFlag)value) { case AcceptationStatusGlobalFlag.Ready: return "ready.jpg"; case AcceptationStatusGlobalFlag.NotReady: return "notready.jpg"; case AcceptationStatusGlobalFlag.AcceptedByAdmin: return "AcceptedByAdmin.jpg"; default: return null; } // or return Enum.GetName(typeof(AcceptationStatusGlobalFlag), value) + ".jpg"; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } } 

您需要在XAML中添加对此转换器的引用

     

替换您的TextBlock

  

用图像告诉它使用你的转换器

  

对此最简单的解决方案是使用值转换器; 因此,创建一个IValueConverter实现,将您的枚举转换为相应的图像。

有关详细信息,请参阅: http : //msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

您应该使用Binding with value converter: http : //blogs.msdn.com/bencon/archive/2006/05/10/594886.aspx