c# - 在C# WPF中,从组合框中获取选定值

在Windows窗体表单中,我可以这样做:


ComboBox.SelectedValue.toString();



这样可以正常工作。

如何在WPF中执行这个操作? 它似乎没有选项。

时间:

我找到了一个更简单的解决方案。


String s = comboBox1.Text;



与旧的WF表单相比,我已经想出了一些奇怪的做法:


ComboBoxItem typeItem = (ComboBoxItem)cboType.SelectedItem;


string value = typeItem.Content.ToString();



确保你已经在XAML文件中设置了ComboBox的名称:


<ComboBox Height="23" Name="comboBox" />



在你的代码中,你可以使用SelectedItem属性访问所选项:


MessageBox.Show(comboBox.SelectedItem.ToString());



我的XAML如下所示:


<ComboBox Grid.Row="2" Grid.Column="1" Height="25" Width="200" SelectedIndex="0" Name="cmbDeviceDefinitionId">


 <ComboBoxItem Content="United States" Name="US"></ComboBoxItem>


 <ComboBoxItem Content="European Union" Name="EU"></ComboBoxItem>


 <ComboBoxItem Content="Asia Pacific" Name="AP"></ComboBoxItem>


</ComboBox>



内容以文本形式显示,并显示WPF组合框的名称,要获取所选项目的名称,我使用以下代码:


ComboBoxItem ComboItem = (ComboBoxItem)cmbDeviceDefinitionId.SelectedItem;


string name = ComboItem.Name;



要获取WPF组合框的选定文本,请执行下列操作:


string name = cmbDeviceDefinitionId.SelectionBoxItem.ToString();



这个怎么样 :


string yourstringname = (yourComboBox.SelectedItem as ComboBoxItem).Content.ToString();



这取决于你绑定到你的ComboBox ,如果绑定了一个名为MyObject的对象,并且有一个名为name的属性,请执行以下操作:


MyObject mo = myListBox.SelectedItem as MyObject;


return mo.Name;



解决这个问题很简单,


<ComboBox SelectedValuePath="_Department"


 DisplayMemberPath="_Department"


 Height="23"


 HorizontalAlignment="Left"


 ItemsSource="{Binding}"


 Margin="-58,1,0,5"


 Name="_DepartmentComboBox"


 VerticalAlignment="Center"


 Width="268"/>



作为ComboBox SelectionChanged事件处理程序中的变量:


private void ComboBoxName_SelectionChanged(object send ...


{


 string s = ComboBoxName.Items.GetItemAt(ComboBoxName.SelectedIndex).ToString();


}



创建一个组合框SelectionChanged事件,并且在WPF设计中设置itemssource {binding }” :

代码:


private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)


{


 string ob = ((DataRowView)comboBox1.SelectedItem).Row.ItemArray[0].ToString();


 MessageBox.Show(ob);


}



...