【发布时间】:2016-01-04 14:01:46
【问题描述】:
我花了一段时间寻找答案,但到目前为止我还没有找到任何对我有用的东西。我有一个将组合框的内容保存到数据库的系统。当我从数据库中取回内容时,我试图将组合框的选定项目设置为从数据库返回的项目。例如: 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”并且它是一个字符串。
我在表单上有一个输入表单和一个数据网格。当从数据网格中选择一个项目时,我希望这些项目显示在输入表单中,以便可以编辑和更新它们。我有所有其他项目显示我只需要这个组合框将所选值设置为数据库中的字符串。
【问题讨论】:
-
你是否试图从它所包含的类之外设置它?如果它的值是私有的,那么您将必须创建一个属性方法来设置该值。如果您使用的是 Visual Studio,请查看组合框控件的属性,看看是否设置为私有。
-
@LarryLane 我正在尝试从后面的代码中设置它。我有这个:((ComboBoxItem)cmbMyCmb.SelectedItem).Content = itemFromDatabase;但这只是更改“请选择”的文本,而不是选择字符串等于的文本。
-
SelectedItem.Content = X,将内容设置为X,但不改变选中项。你能改成
SelectedIndex吗?
标签: c# wpf xaml combobox datagrid