一、使用
Combox继承于ItemsControl控件,它有自己的条目容器ComBoxItem,举个例子:
<ComboBox Height="21" >
<ComboBoxItem>
<TextBlock Text="HAHAHA"/>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock Text="HAHAHA"/>
</ComboBoxItem>
</ComboBox>
我们可以任意设置ComboxItem的内容。其实ComboxItem不是必须要写的。因为无论你使用什么样的数据类型,Combox控件都会自动使用ComboxItem这个条目容器来包裹它.而ComBoxItem继承于Content控件,可以放置任何数据类型。所以我们一般写成如下形式:
<ComboBox >
<StackPanel >
<Image Source="14.jpg" Width="100" Height="50"></Image>
<TextBlock FontSize="16" TextWrapping="Wrap">
</StackPanel>
<StackPanel >
<Image Source="14.jpg" Width="100" Height="50"></Image>
<TextBlock FontSize="16" TextWrapping="Wrap">
</StackPanel>
</ComboBox >
ComBox的绑定:
我们需要设置Combox的ItemsSource属性,让它绑定一个数据集合。
在后台,可以直接使用Combox.Items.Add()来添加对象列表
二、获取ComboBox的选中项
// <summary>
/// 下拉列表的选项改变事件:获取当前选中的选项的内容
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void myComboxBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// 此时的 myComboxBox.SelectedValue = System.Windows.Controls.ComboBoxItem: 选项的内容
// 所以如果用SelectedValue这种方法获取选中的值,还需要切割字符串
ComboBoxItem item = myComboxBox.SelectedItem as ComboBoxItem;
string content = item.Content.ToString();
MessageBox.Show("content = " + content);
}
参考:
https://blog.youkuaiyun.com/qq_18995513/article/details/53422757