2016-07-15 23 views
0

Ich habe 30 Elemente in ComboBox. Ich bin auf der Suche nach der Möglichkeit, Spalten und Zeilen in einer Combobox hinzuzufügen.
Hier ist, was ich tun möchte:Raster Spalten und Zeilen in ComboBox

enter image description here

Die Combobox haben 4 Spalten, 7 Zeilen (row = ItemCount/Spalten).
Item-Klasse:

public class ItemSymbol{ 
    public string ImageName{ 
    get; set; 
    } 

    public string Comment{ 
    get; set; 
    } 
} 

Ansichtsmodell:

List<ItemSymbol> lstsymbol=new List<ItemSymbol>(30){ 
    new ItemSymbol(){[email protected]"Resources\bunny.png",Comment="funny"}, 
    new ItemSymbol(){[email protected]"Resources\hand.png",Comment="communication"}, 
    new ItemSymbol(){[email protected]"Resources\heart1.png",Comment="love"}, 
    new ItemSymbol(){[email protected]"Resources\heart2.png",Comment="love"} 
}; 

Window1.xaml:

<ComboBox x:Name="cbo" 
ItemsSource="{Binding lstsymbol}" 
SelectedItem="{Binding SelectedItem}"> 
<ComboBox.ItemTemplate> 
    <DataTemplate> 
    <StackPanel Orientation="Vertical"> 
    <Image Width="30" Height="30" 
     Source="{Binding ImageRes}" Margin="5" ToolTip="{Binding Comment}"/> 
    </StackPanel> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 
</ComboBox> 

Antwort

1

Dieses Element zu Ihrer Combobox in XAML:

<ComboBox.ItemsPanel> 
    <ItemsPanelTemplate> 
     <UniformGrid Rows="7" Columns="4" /> 
    </ItemsPanelTemplate> 
</ComboBox.ItemsPanel> 

(Aber Sie wissen, dass 7x4 ist weniger als 30?) :-)

+0

ja, ich weiß that.thank! Es ist working.How Breite Höhe einheitlicher einzustellen mit Inhalt darin zu passen @Fratyx – Jandy

+0

Meinst du die Bildschirmgröße des UnformGrid oder die Anzahl der Zeilen und Spalten. – Fratyx

+0

i aktualisiert [email protected] – Jandy