如何根据绑定值更改WPF数据网格行的图像

我是WPF的初学者。

我有一个数据网格,用于显示带有列定义的消息,如下所示。 数据网格绑定到数据表

       

现在我需要添加一个标题为“状态”的coulmn。 和内容为图像。 我正在将数据表的“IsRead”列绑定到此列,这样如果IsRead值为False,我需要显示图像unread.png,如果IsRead值为True,我需要显示图像read.png

我该怎么做呢?

您可以在包含绑定属性的类中创建StatusImage属性:

 public string StatusImage { get { if (IsRead) return "read.png"; return "unread.png"; } } 

然后将其绑定到图像,例如:

  

或者就像你没有上课一样。 您可以在数据触发器之间进行选择:

             

或者您可以使用值转换器:

类:

 public class IsReadImageConverter : IValueConverter { public Image ReadImage { get; set; } public Image UnreadImage { get; set; } public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (!(value is bool)) { return null; } bool b = (bool)value; if (b) { return this.ReadImage } else { return this.UnreadImage } } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } 

窗口资源:

  

然后你的绑定将是:

 ImageSource={Binding Path=IsRead,Converter={StaticResource BoolImageConverter}}" 

应该都行得通。