前端放置了几个ComboBox的控件。

 <Grid x:Name="LayoutRoot" Background="White">
<ComboBox Height="23" HorizontalAlignment="Left" Margin="26,49,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="223,49,0,0" Name="comboBox2" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox2_SelectionChanged" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="26,140,0,0" Name="comboBox3" VerticalAlignment="Top" Width="120" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="223,140,0,0" Name="comboBox4" VerticalAlignment="Top" Width="120" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="26,199,0,0" Name="comboBox5" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox5_SelectionChanged" />
</Grid>

后端的Cs文件如下:

 public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
InitlizePage();
} public void InitlizePage()
{
#region comboBox1 最基本的绑定 ComboBoxItem lbi = new ComboBoxItem();
lbi.SetValue(ComboBoxItem.ContentProperty, "江苏"); this.comboBox1.Items.Add("武汉");
this.comboBox1.Items.Add("大连");
this.comboBox1.Items.Add("苏州");
this.comboBox1.Items.Add(lbi); this.comboBox1.SelectedItem = lbi;
#endregion #region 构建了一个数据源
List<Product> _list = new List<Product>();
_list.Add(new Product() { ID = , Name = "产品1" });
_list.Add(new Product() { ID = , Name = "产品2" });
_list.Add(new Product() { ID = , Name = "产品3" });
_list.Add(new Product() { ID = , Name = "产品4" });
_list.Add(new Product() { ID = , Name = "产品5" });
_list.Add(new Product() { ID = , Name = "产品6" });
#endregion #region 添加数据源
this.comboBox2.DisplayMemberPath = "Name";
//this.comboBox2.SelectedValuePath = "ID";//没有指定Value值
this.comboBox2.UpdateLayout();
this.comboBox2.ItemsSource = _list; //进行初始化赋值,使用SelectedItem ComboBox的数据初始化跟web中的DropDownList是不一样的
this.comboBox2.SelectedItem = (from p in this.comboBox2.Items
where (p as Product).Name == "产品4"
select p).First();
#endregion #region
this.comboBox5.DisplayMemberPath = "Name";
this.comboBox5.SelectedValuePath = "ID";//指定Value值
this.comboBox5.UpdateLayout();
this.comboBox5.ItemsSource = _list; int SelectedIndex = -; for(int i =;i<_list.Count;i++ )
{
if (_list[i].ID == )
{
SelectedIndex = i;
break;
}
}
//通过SelectedIndex来进行初始化绑定
this.comboBox5.SelectedIndex = SelectedIndex; #endregion #region 添加自定义Item
ComboBoxItem cbiRight = new ComboBoxItem();
cbiRight.Background = new SolidColorBrush(Colors.Yellow);
cbiRight.HorizontalContentAlignment = HorizontalAlignment.Right;
cbiRight.SetValue(ComboBoxItem.ContentProperty, "上海"); ComboBoxItem cbiCenter = new ComboBoxItem();
cbiCenter.Background = new SolidColorBrush(Colors.Cyan);
cbiCenter.HorizontalContentAlignment = HorizontalAlignment.Center;
cbiCenter.SetValue(ComboBoxItem.ContentProperty, "北京");
ComboBoxItem cbiLeft = new ComboBoxItem();
cbiLeft.Background = new SolidColorBrush(Colors.LightGray);
cbiLeft.HorizontalContentAlignment = HorizontalAlignment.Left;
cbiLeft.SetValue(ComboBoxItem.ContentProperty, "深圳"); this.comboBox3.Items.Add(cbiRight);
this.comboBox3.Items.Add(cbiCenter);
this.comboBox3.Items.Add(cbiLeft); #endregion Image img = new Image();
img.Source = new BitmapImage(new Uri("img/1.png", UriKind.Relative)); Label lbl = new Label();
lbl.Content = "带图片的选项"; StackPanel sp = new StackPanel();
sp.Orientation = Orientation.Horizontal;
sp.Children.Add(img);
sp.Children.Add(lbl); ComboBoxItem multipleCmb = new ComboBoxItem();
multipleCmb.Content = sp;
this.comboBox4.Items.Add(multipleCmb); } private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Product product = (sender as ComboBox).SelectedItem as Product;
int selectID = product.ID;
string selectedName = product.Name;
//MessageBox.Show(selectID.ToString() + selectedName); Product product2 = comboBox2.SelectedValue as Product;
int selectedID2 = product2.ID;
string selectedName2 = product2.Name;
//MessageBox.Show(selectedID2.ToString() + selectedName2);
} //
private void comboBox5_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//MessageBox.Show(((ComboBox)sender).SelectedValue.ToString());//获取value
//MessageBox.Show(((Product)((ComboBox)sender).SelectedItem).Name);//获取name呢????
}
}

当然,其中我们还要构建一个Product的类:

 public class Product
{
public int ID { get; set; } public string Name { get; set; }
}

获取选择的项的content:

 string layerName = ((sender as ComboBox).SelectedItem as ComboBoxItem).Content.ToString();

Silverlight中关于ComboBox的各种使用的更多相关文章

  1. silverlight中 ComboBox绑定数据库,并获取当前选定值

    silverlight中 ComboBox绑定数据库,并获取当前选定值 在silverlight中 用combobox下拉菜单绑定数据库的方法和用DataGrid绑定数据库的方法类似. page.xa ...

  2. Silverlight中文本框添加回车事件后,换行无法清除的解决方法

    在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...

  3. SharePoint 2013 Silverlight中使用Net客户端对象模型

    1.创建Silverlight时,选择Silverlight 4,不要选择版本5,试了很久版本5都调用不了,自己也不知道什么原因,谷歌也没找到答案,后来尝试版本4,可以调用: 至于Host the S ...

  4. Silverlight中的TabControl如何绑定数据?重写tabcontrol和tabItem 解决绑定友好问题。可以绑定对象集合

    在 WPF 中,TabControl 可以直接将 ItemsSource 绑定数据源,见 将 TabControl 绑定到数据的示例 http://msdn.microsoft.com/zh-cn/l ...

  5. 在DataGridView控件中加入ComboBox下拉列表框的实现

    在DataGridView控件中加入ComboBox下拉列表框的实现 转自:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.htm ...

  6. ArcGIS API for Silverlight中加载Google地形图(瓦片图)

    原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...

  7. 在Silverlight中实施RESTful调用

    在Silverlight中实施RESTful调用:   http://book.51cto.com/art/201006/206314.htm    http://bbs.csdn.net/topic ...

  8. Silverlight中动画的性能浅析

    Silverlight中提供了StoryBoard实现动画,可是StoryBoard的性能实在不敢恭维,特别是动画很大的时候,计算机的CPU和内存的狂增,如此一来性能实在太差,在默认的动画效果中动画实 ...

  9. aspx利用cookie值来停止silverlight中的计时器

    一.silverlight与silverlight中可以利用委托(delegate)来刷新frame.Refresh() 1.在子类中定义委托捕捉关闭事件按钮 public delegate void ...

随机推荐

  1. 我的第一个博客——Fragment遇到的问题

    最近项目中使用fragment时遇到了一些问题: 1.fragment的刷新问题. 解决:我的情况是有多个fragment时,只需要刷新其中几个界面.之前我在网上看到的一些方法.如下: 首先在Adap ...

  2. POPUP_TO_CONFIRM的使用方法

    CALL FUNCTION 'POPUP_TO_CONFIRM'       EXPORTING         TEXT_QUESTION               = '是否要打印凭证!'    ...

  3. stark组件开发之列表页面预留钩子方法。 可根据用户的不同,显示不同的列

    要实现,这个方法.子类中 list_diplay 这个列表, 就不能够写死.他应该是 可以根据.用户的不同,返回不同的值. 所以 就需要一个函数, 可以进行判断当前用户是谁. 并且往这个列表中添加,他 ...

  4. ABP框架使用Mysql数据库

    参考文档:https://github.com/ABPFrameWorkGroup/AbpDocument2Chinese/blob/master/Markdown/Abp/9.4ABP%E5%9F% ...

  5. go 语言实现一个简单的 web 服务器

    学习Go语言的一些感受,不一定准确. 假如发生战争,JAVA一般都是充当航母战斗群的角色.一旦出动,就是护卫舰.巡洋舰.航母舰载机.预警机.电子战飞机.潜艇等等浩浩荡荡,杀将过去.(JVM,数十个JA ...

  6. PAT 1050 螺旋矩阵(25)(代码)

    1050 螺旋矩阵(25)(25 分) 本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方 ...

  7. Python.SQLAlchemy.0

    1. SQLAlchemy and You http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/ 2. Overview http://docs.s ...

  8. How do I configure a Wired Ethernet interface

    1.In order to configure the Wired Ethernet interface the MDI must be connected to the PC using the U ...

  9. linux查看文件被哪个进程占用?

    1> 如果文件是端口号 netstat -ntlp | grep portNum [root@localhost root]# netstat -ntlp Active Internet con ...

  10. mybatis高级映射-一对多

    订单(一)和(多)订单明细 数据库结构如下所示[演示数据,真实表比这复杂得多] order表 订单明细表 xml映射表 <resultMap type="xxx.order" ...