我正在創建一個應用程序,顯示一個rss,它具有幾種類型的消息(alert,warning1,warning2)。所有類型都有一個png(與消息相同)。它們全部放置在我的項目的Images文件夾中。如何根據名稱(字符串)綁定圖像源?
因此,在我的應用程序中,我綁定到一個newsobjects列表。新對象具有字符串Type
(alert,warning1,warning2)。
但是,如何將圖像的來源綁定到基於此Type屬性的正確圖像?
我正在創建一個應用程序,顯示一個rss,它具有幾種類型的消息(alert,warning1,warning2)。所有類型都有一個png(與消息相同)。它們全部放置在我的項目的Images文件夾中。如何根據名稱(字符串)綁定圖像源?
因此,在我的應用程序中,我綁定到一個newsobjects列表。新對象具有字符串Type
(alert,warning1,warning2)。
但是,如何將圖像的來源綁定到基於此Type屬性的正確圖像?
你必須使用的IValueConverter:
如:
public class ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var imagePath = (string) value;
switch (imagePath)
{
case "warning":
return "/Images/warning.png";
case "error":
return "/Images/error.png";
default:
throw new InvalidOperationException();
}
}
}
然後在XAML:
<UserControl.Resources>
<converters:ImageConverter x:Key="imageConverter"/>
....
和finaly:
<Image Source="{Binding DataItem.Type,Converter={StaticResource imageConverter}}" />
在這種newsObject類的構造函數中添加switch(Type)
塊,並有申請根據Type
值的不同圖像(我認爲在這個類,你有圖像或映像路徑屬性附加傷害)
感謝您的職位。但是你在哪裏定義「轉換器」,以及你如何做到這一點?我創建了一個新類並粘貼了你的代碼。針對該命名空間沒有幫助我......: -/ – Jason94
這只是xaml中的一個命名空間。例如:xmlns:轉換器=「clr-namespace:WpfApplication1.Converters」。你可以發佈你的代碼,以便我們可以查看它。 –
明白了,謝謝! – Jason94