欢迎访问宙启技术站
智能推送

怎么在WPF中利用ComboBox获取当前的选择值

发布时间:2023-05-18 01:47:22

ComboBox是一种常用的WPF控件,常用于显示一个可选的下拉列表。当用户选择某一项后,需要获取当前选择的值以便进行后续操作。本文将介绍在WPF中利用ComboBox获取当前的选择值。

一、添加ComboBox控件

在WPF窗口中添加ComboBox控件,可以通过XAML代码或者拖拽方式添加,如下所示:

<ComboBox x:Name="cbItems" VerticalAlignment="Top" Margin="10,10,0,0" Width="120">
   <ComboBoxItem Content="项1"/>
   <ComboBoxItem Content="项2"/>
   <ComboBoxItem Content="项3"/>
</ComboBox>

其中,ComboBox中的元素可以是代码中定义的对象,也可以是静态字符串。在本例中,使用了静态字符串,三个ComboBoxItem分别表示三个选项:“项1”、“项2”、“项3”。

二、获取ComboBox选择项的值

获取ComboBox选择项的值,需要在选择项改变时触发事件,在事件中获取当前选择的值。

1. 选择项改变事件

可以通过ComboBox的SelectionChanged事件来监听ComboBox选择项的变化。在XAML代码中,可将ComboBox的SelectionChanged事件绑定到一个方法上。如下所示,当ComboBox选择项改变时,会触发cbItems_SelectionChanged方法。

<ComboBox x:Name="cbItems" SelectionChanged="cbItems_SelectionChanged" VerticalAlignment="Top" Margin="10,10,0,0" Width="120">
   <ComboBoxItem Content="项1"/>
   <ComboBoxItem Content="项2"/>
   <ComboBoxItem Content="项3"/>
</ComboBox>

2. 获取当前选择项的值

在cbItems_SelectionChanged方法中,通过ComboBox控件的SelectedItem属性获取当前选择项的值。SelectedItem属性返回Object类型的对象,需要强制类型转换为ComboBoxItem类型,才能获取ComboBoxItem的Content属性的值。本例中,通过ToString函数将Content属性的值转换为字符串类型,最终输出当前选择项的值。

private void cbItems_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   ComboBoxItem selectedItem = (ComboBoxItem)cbItems.SelectedItem;
   string selectedValue = selectedItem.Content.ToString();
   Console.WriteLine("当前选择值:{0}", selectedValue);
}

3. 完整代码

下面是完整的代码示例:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="250" Width="300">
   <Grid>
      <ComboBox x:Name="cbItems" SelectionChanged="cbItems_SelectionChanged" VerticalAlignment="Top" Margin="10,10,0,0" Width="120">
         <ComboBoxItem Content="项1"/>
         <ComboBoxItem Content="项2"/>
         <ComboBoxItem Content="项3"/>
      </ComboBox>
   </Grid>
</Window>

public partial class MainWindow : Window
{
   public MainWindow()
   {
      InitializeComponent();
   }

   private void cbItems_SelectionChanged(object sender, SelectionChangedEventArgs e)
   {
      ComboBoxItem selectedItem = (ComboBoxItem)cbItems.SelectedItem;
      string selectedValue = selectedItem.Content.ToString();
      Console.WriteLine("当前选择值:{0}", selectedValue);
   }
}

当选择ComboBox的选项时,可以在控制台输出当前选择项的值,如下所示:

当前选择值:项1
当前选择值:项2

至此,我们已经学会了在WPF中利用ComboBox控件获取当前选择项的值。