在win8 app开发过程中,自然而然得会遇到数据绑定的问题,今天碰上的一个combobox控件数据绑定问题着实让我蛋疼了一番。
combobox里的关于selected的属性有一堆,我这里就给新手一个简明的介绍
1.首先是数据绑定问题,我们来设置数据源
比如我有这样一个类
public class AccountName
{
public int id { get; set; }
//账户名称
public string accountName { get; set; }
}
现在我想绑定到一个名为accountNameCb的combobox控件上,则在xaml里这样写
ItemsSource="{Binding}"
后台代码(anlist是一个AccountName类型的List)
accountNameCb.DataContext = anlist;
这样我们就把一个List绑定到了combobox上
2.绑定的显示问题
combobox和easyui 的combobox一样,是可以设置text和value的,也就是显示值和逻辑值
xaml里这样写
DisplayMemberPath="accountName" SelectedValuePath="id"
这样就能显示出accountName这个属性
3.选中项的问题
上面设置了
SelectedValuePath="id"
那么我们从后台可以这样获取选中项的ID值
var id = this.accountNameCb.SelectedValue;
再来解释一下有关selected的一些属性
SelectedIndex:可以获得或设置默认选中项的索引(就是列表中第几个项)
SelectionBoxItem:这个带box的就是在combobox关闭之后显示在box里的项,当你的combobox还没有元素的时候,用这个属性是会报null的错的
另外
ComboBoxItem cbi = cb.SelectedValue as ComboBoxItem;
ComboBoxItem cbi = cb.SelectedItem as ComboBoxItem;
cbi.Content;这两种写法都能获取到当前选定项的内容,差别可能是一个是value一个是text吧,这个我没验证O.O
关于Combobox的问题我暂时遇到的就是这么多吧,如果有什么问题的话欢迎指正。
之前在搞sqlite的东西,发现还蛮好用的,也弄得差不多了,找个时间把我的心得写给大家一起讨论吧~今天就到这里了,收工,睡觉