ComboBox中的网格列和行

时间:2016-07-15 10:24:19

标签: c# wpf-controls

我在comboBox中有30个项目。我正在寻找在组合框中添加列和行的方法。
这就是我想要做的事情:

enter image description here

组合框有4列,7行(row = itemCount / columns)。
项目类:

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

   public string Comment{
     get; set;
   }
}

视图模型:

List<ItemSymbol> lstsymbol=new List<ItemSymbol>(30){
  new ItemSymbol(){ImageName=@"Resources\bunny.png",Comment="funny"},
  new ItemSymbol(){ImageName=@"Resources\hand.png",Comment="communication"},
  new ItemSymbol(){ImageName=@"Resources\heart1.png",Comment="love"},
  new ItemSymbol(){ImageName=@"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>

1 个答案:

答案 0 :(得分:1)

将此元素添加到XAML中的Combobox:

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

(但你知道7x4不到30?): - )