2013-07-24 43 views
0

我正在創建一個應用程序,顯示一個rss,它具有幾種類型的消息(alert,warning1,warning2)。所有類型都有一個png(與消息相同)。它們全部放置在我的項目的Images文件夾中。如何根據名稱(字符串)綁定圖像源?

因此,在我的應用程序中,我綁定到一個newsobjects列表。新對象具有字符串Type(alert,warning1,warning2)。

但是,如何將圖像的來源綁定到基於此Type屬性的正確圖像?

回答

1

你必須使用的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}}" /> 
+0

感謝您的職位。但是你在哪裏定義「轉換器」,以及你如何做到這一點?我創建了一個新類並粘貼了你的代碼。針對該命名空間沒有幫助我......: -/ – Jason94

+0

這只是xaml中的一個命名空間。例如:xmlns:轉換器=「clr-namespace:WpfApplication1.Converters」。你可以發佈你的代碼,以便我們可以查看它。 –

+0

明白了,謝謝! – Jason94

1

在這種newsObject類的構造函數中添加switch(Type)塊,並有申請根據Type值的不同圖像(我認爲在這個類,你有圖像或映像路徑屬性附加傷害)

相關問題