2015-06-06 78 views
1

我想在組合框itemssource中的每個項目旁添加不同的圖像。這是我目前所擁有的。如何添加不同的圖像到組合框itemssource數組

<ComboBox x:Name="cmb" HorizontalAlignment="Left" Width="135" Height="22" 
      SelectedItem="{Binding myViewMode}" Margin="5,0,0,0"> 
      <ComboBox.ItemsSource> 
       <x:Array Type="sys:String" xmlns:sys="clr-namespace:System;assembly=mscorlib">                 
        <sys:String>Oranges</sys:String> 
        <sys:String>Mangoes</sys:String> 
       </x:Array> 
      </ComboBox.ItemsSource>               
</ComboBox> 

如何使用itemtemplate添加兩個不同的圖像。由於

編輯一個

這是我用的ItemTemplate

<ComboBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <Image Source="{Binding OrangesImage}" Height="100"/> 
<Image Source="{Binding MangoesImage}" /> 
         </StackPanel> 
        </DataTemplate> 
     </ComboBox.ItemTemplate> 

嘗試它在這裏,我真的很堅持。

+0

顯然,你已經知道答案:使用項目模板。你試過什麼了? – Kryptos

+0

當我使用itemtemplate時,它顯示的圖像沒有文字 – capdiz

+0

您的問題上有這個標籤[tag:mvvm],但您似乎不知道它的含義。我建議從編碼中休息一下,以便學習它。不應超過幾個小時。那裏有很多鏈接。訪問您最喜愛的搜索引擎。 – Will

回答

2

目前您的項目模板只包含兩個圖像,所以您將顯示兩個圖像,每個項目都沒有文字!

我建議您將您的ItemsSource更改爲後面的代碼,以便您可以擁有文本和圖像屬性。

首先做一個簡單的水果類:

public class Fruit 
{ 
    public string FruitName { get; set; } 
    public string FruitImage { get; set; } 
} 

然後創建這些水果的清單,您的組合框的的ItemsSource設置爲這個列表:

var fruits = new List<Fruit>(); 

fruits.Add(new Fruit() { FruitName = "Mangos", FruitImage = @"C:\mangoimage.jpg" }); 
fruits.Add(new Fruit() { FruitName = "Oranges", FruitImage = @"C:\mangoimage.jpg" }); 

cmb.ItemsSource = fruits; 

然後從而簡化您的XAML:

<ComboBox x:Name="cmb" HorizontalAlignment="Left" Width="135" Height="22" SelectedItem="{Binding myViewMode}" Margin="5,0,0,0">  
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding FruitName}"/> 
       <Image Source="{Binding FruitImage}" Height="100"/>       
      </StackPanel> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 
1

在你的ItemSource中你的圖像應該包含Uri路徑和BitMapImage類那麼只有圖片可爲ItemTemplate中的組合框

XAML代碼

<ComboBox x:Name="cmb" HorizontalAlignment="Left" Width="135" Height="22" 
     SelectedItem="{Binding myViewMode}" Margin="5,0,0,0"> 
    <ComboBox.ItemTemplate> 
      <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Image Width="25" Height="25" Source="{Binding FruitName}"/>    
     </StackPanel> 
    </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

模型類

public class Fruit 
{ 
public string FruitName { get; set; } 
} 

你的ItemSource應下設爲:

fruitCollection.Add(new Fruit() {FruitName= new BitmapImage(new Uri("C:\mangoimage.jpg", UriKind.Relative))}); 
相關問題