silverlight中如何得到ComboBox的选中值(SelectedValue)?
2010-07-29 09:47
369 查看
用惯了Asp.Net中的ComboBox和ListBox,想当然的以为SL/Winform/WPF中的ComboBox也应该有类似SelectedValue的属性,但是结果很遗憾,木有!
不过,这个问题其实在Winform中就有了,这里给出三种还算简便的解决办法:
1.参考http://www.cnblogs.com/libra163/archive/2009/01/06/1370146.html一文,自己做个新的ComboBox类,实现SelectedValue属性(这个算比较牛的做法)
2.善用ComboBoxItem的Tag属性,既然没有Value属性,何不直接用Tag属性充当Value呢?
代码如下:
Code
cbo2.Items.Add(new ComboBoxItem() { Content = "content1", Tag = "tag1" });//赋值
txtMsg.Text = "Value=" + (cbo2.SelectedItem as ComboBoxItem).Tag + ";Text=" + (cbo2.SelectedItem as ComboBoxItem).Text;//取值
这种做法,个人感觉有点滑头,不过大部分情况下已经能解决问题了
3.可能这个才是MS设计人员的初衷,我在观察ComboBox.Items.Add()时,发现这Add方法接受一个Object类型的参数,Object可是万物之祖啊!也就是说,MS允许用户在这里
尽情发挥,任意扩展,不光是Value属性,还可以有Age属性,Birthday属性...只要你愿意,爱咋咋地
代码:先定义一个基础类(可以根据你的需要,随便改成Book,Person,User等其它业务类)
Code
public class ItemObject{
public string Text { set; get; }
public string Value { set; get; }
}
赋值:
Code
cbo.Items.Clear();
for (int i = 0; i < 10; i++)
{
cbo.Items.Add(new ItemObject() { Text = "Text" + i.ToString(), Value = "Value" + i.ToString() });
}
cbo.DisplayMemberPath = "Text";
取值:跟第二种做法几乎一样
Code
txtMsg.Text = "Value=" + (cbo.SelectedItem as ItemObject).Value + ";Text=" + (cbo.SelectedItem as ItemObject).Text;
欢迎转载,转载请注明来自菩提树下的杨过/article/4607671.html
不过,这个问题其实在Winform中就有了,这里给出三种还算简便的解决办法:
1.参考http://www.cnblogs.com/libra163/archive/2009/01/06/1370146.html一文,自己做个新的ComboBox类,实现SelectedValue属性(这个算比较牛的做法)
2.善用ComboBoxItem的Tag属性,既然没有Value属性,何不直接用Tag属性充当Value呢?
代码如下:
Code
cbo2.Items.Add(new ComboBoxItem() { Content = "content1", Tag = "tag1" });//赋值
txtMsg.Text = "Value=" + (cbo2.SelectedItem as ComboBoxItem).Tag + ";Text=" + (cbo2.SelectedItem as ComboBoxItem).Text;//取值
这种做法,个人感觉有点滑头,不过大部分情况下已经能解决问题了
3.可能这个才是MS设计人员的初衷,我在观察ComboBox.Items.Add()时,发现这Add方法接受一个Object类型的参数,Object可是万物之祖啊!也就是说,MS允许用户在这里
尽情发挥,任意扩展,不光是Value属性,还可以有Age属性,Birthday属性...只要你愿意,爱咋咋地
代码:先定义一个基础类(可以根据你的需要,随便改成Book,Person,User等其它业务类)
Code
public class ItemObject{
public string Text { set; get; }
public string Value { set; get; }
}
赋值:
Code
cbo.Items.Clear();
for (int i = 0; i < 10; i++)
{
cbo.Items.Add(new ItemObject() { Text = "Text" + i.ToString(), Value = "Value" + i.ToString() });
}
cbo.DisplayMemberPath = "Text";
取值:跟第二种做法几乎一样
Code
txtMsg.Text = "Value=" + (cbo.SelectedItem as ItemObject).Value + ";Text=" + (cbo.SelectedItem as ItemObject).Text;
欢迎转载,转载请注明来自菩提树下的杨过/article/4607671.html
相关文章推荐
- Silverlight学习笔记[7] - silverlight中如何得到ComboBox的选中值(SelectedValue)?
- silverlight中如何得到ComboBox的选中值(SelectedValue)?
- silverlight中如何得到ComboBox的选中值(SelectedValue)?
- Silverlight学习笔记四:如何通过自定义ComboBox实现SelectedValue
- Silverlight ComboBox的SelectedValue不在ItemSource中的绑定失败问题。
- 如何得到DataGrid当前选中行的数据(VC++)
- Silverlight 之ComboBox控件选中项
- Silverlight ComboBox 设置选中项
- jquery实现如何得到那个单选框被选中
- 在Telerik for silverlight控件radtreeview中如何选中先后、兄弟、父母节点
- 在Telerik for silverlight控件radtreeview中如何通过路径得到节点(转载)
- [原创]如何得到RadioButtonList 中的选中值
- 如何为下拉列表的文本复制与如何得到下拉列表选中项的文本值
- sencha-touch1.1-combobox(selectfield)如何获得选中的value
- Easyui combobox如何默认选中第一项???
- Silverlight ComboBox的SelectedValue不在ItemSource中的绑定失败问题。
- C#之WinForm基础 comboBox1.SelectedIndex得到控件中被选中数据项的索引值
- 如何得到ListControl选中的项 ListControl选中一行
- WPF and Silverlight.ComboBox 如何通过 Binding IsDropDownOpen 实现下拉菜单展开
- 在Telerik for silverlight控件radtreeview中如何通过路径得到节点