首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >silverlight中如何得到ComboBox的选中值(SelectedValue)?

silverlight中如何得到ComboBox的选中值(SelectedValue)?

作者头像
菩提树下的杨过
发布2018-01-23 10:15:48
1.2K0
发布2018-01-23 10:15:48
举报

用惯了Asp.Net中的ComboBox和ListBox,想当然的以为SL/Winform/WPF中的ComboBox也应该有类似SelectedValue的属性,但是结果很遗憾,木有!

不过,这个问题其实在Winform中就有了,这里给出三种还算简便的解决办法: 1.参考一文,自己做个新的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;

欢迎转载,转载请注明来自菩提树下的杨过

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-02-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档