[英]How to set the selected value of a combobox to a string value
我已经花了一段时间寻找答案,但是到目前为止,我还没有发现任何对我有用的东西。 我有一个将组合框的内容保存到数据库的系统。 当我从数据库取回内容时,我正在尝试将组合框的选定项设置为从数据库返回的项。 例如:XAML:
<ComboBox SelectedValuePath="Content" x:Name="cmbMyCmb" SelectedIndex="0" SelectionChanged="cmbMyCmb_SelectionChanged">
<ComboBoxItem Content="Please Select"/>
<ComboBoxItem Content="Item 1"/>
<ComboBoxItem Content="Item 2"/>
<ComboBoxItem Content="Item 3"/>
</ComboBox>
背后的代码:
cmbMyCmb.SelectedValue = itemFromDatabase;
如果我显示itemFromDatabase
它将显示“ Item 2”,它是一个字符串。
我在表单上拥有的是输入表单和数据网格。 从数据网格中选择一个项目后,我希望这些项目显示在输入表单中,以便可以对其进行编辑和更新。 我还有其他所有显示项,我只需要此组合框即可将所选值设置为数据库中的字符串。
消除组合定义中的SelectedIndex="0"
,然后尝试以下操作:
<ComboBox x:Name="cmbMyCmb" SelectedValuePath="Content" SelectionChanged="cmbMyCmb_SelectionChanged" Margin="99,104,117.4,157.8">
<ComboBoxItem Content="Please Select"/>
<ComboBoxItem Content="Item 1"/>
<ComboBoxItem Content="Item 2"/>
<ComboBoxItem Content="Item 3"/>
</ComboBox>
后面的代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//get item from database here
string itemFromDatabase = "Item 2";
cmbMyCmb.SelectedValue = itemFromDatabase;
}
请注意,我正在Loaded
事件中进行操作,以作为有关如何更改的示例。 如果在SelectionChanged
事件中执行此操作,则结果是无论用户选择什么,后面的代码都会将其恢复为所需的任何值,这没有任何意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.