WPF中,ComboBox值显示问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中,ComboBox值显示问题相关的知识,希望对你有一定的参考价值。

WPF中,如果一个下拉框ComboBox是通过绑定XML显示的下拉内容,将其选定的项保存到数据库后,使用SqlDataReader.Read的方法取出该值。问题如何将取出来的值再显示到该ComboBox上去,无法将取出来的值赋值给SelectedValue?
ComboBox里的数据从MXL文件里绑定过来的,第一次是将其选中的值保存到数据库里;第二次是将数值从数据库里读取出来,想让ComboBox来默认显示读取出来的值,不会说赋的值是ComboBox选项里没有的。

首先,产生此问题的原因是你对 wpf 的 MVVM 不了解。
你可以先想想 ComboBox 的 SelectedItem 是什么类型的.(就绑定了 xml 的 ComboBox 而言, 其 SelectedItem 是一个 XmlElement, 你从数据库取出的值 应该是 String 类型). 想清楚此问题就不会有此一问了 (主要是区分 ComboBox 的 项(Item),项所用的模板(Template 或者说项的容器 Container) 之间的关系,这与传统 Form 的模式有很大区别,Form 中的 ComboBox 的 项总是 String 的).
你的问题与我之前回答的有相似性,可以参考下.
http://zhidao.baidu.com/question/146066313.html
参考技术A 修改SelectedValue 貌似是无效的,你可以更新XML 的内容,然后数据绑定,或者把数据库里的查询结果绑定到ComboBox,如果想要修改选中项,可以使用comboBox1.Items[comboBox1.SelectedIndex] = xxooxxo; 参考技术B 可以用SelectedValue,你设置的不生效的原因有可能是,你读出来的数据和你的ComboBox的选项值不一样,先确认一下这个原因. 参考技术C 只能赋给 SelectedItem。

以上是关于WPF中,ComboBox值显示问题的主要内容,如果未能解决你的问题,请参考以下文章

wpf combobox 关闭窗口后,再次调用不显示已经选择的值?

在没有设置NAME(WPF)的情况下将默认值显示在ComboBox中

具有空值的 WPF ComboBox SelectedValue 绑定显示为空白

wpf 当DataGrid列模版是ComboBox时,显示信息

WPF DataGrid 带有一键组合框,显示按枚举名称排序的枚举值

wpf里combobox怎么取数据