【发布时间】:2011-03-26 16:24:08
【问题描述】:
我是 WPF 和 MVVM 的新手(本周开始尝试使用它)并尝试在运行时绑定图像资源。我尝试显示的项目包含一个枚举属性,该属性指示项目的类型或状态:
public class TraceEvent
{
/// <summary>
/// Gets or sets the type of the event.
/// </summary>
/// <value>The type of the event.</value>
public TraceEventType EventType { get; set; }
}
据我所知 Image 的 Source 属性有一个值转换器,它接受字符串并返回 Uri 对象。
<Image Source="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}" />
那么为什么上述方法不起作用?如果我直接输入 uri(没有绑定),图像就会完美显示。事实上,如果我在 TextBlock 中进行绑定并在 Image 中使用该值的结果,也可以毫无问题地显示:
<TextBlock Visibility="Collapsed" Name="bindingFix" Text="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}"/>
<Image Source="{Binding ElementName=bindingFix, Path=Text}" />
我很确定我做错了什么,因为与图像有关的如此明显的事情。
谢谢。
【问题讨论】:
标签: wpf image mvvm binding string-formatting