Silverlight中关于ComboBox的各种使用
前端放置了几个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的各种使用的更多相关文章
- silverlight中 ComboBox绑定数据库,并获取当前选定值
silverlight中 ComboBox绑定数据库,并获取当前选定值 在silverlight中 用combobox下拉菜单绑定数据库的方法和用DataGrid绑定数据库的方法类似. page.xa ...
- Silverlight中文本框添加回车事件后,换行无法清除的解决方法
在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...
- SharePoint 2013 Silverlight中使用Net客户端对象模型
1.创建Silverlight时,选择Silverlight 4,不要选择版本5,试了很久版本5都调用不了,自己也不知道什么原因,谷歌也没找到答案,后来尝试版本4,可以调用: 至于Host the S ...
- Silverlight中的TabControl如何绑定数据?重写tabcontrol和tabItem 解决绑定友好问题。可以绑定对象集合
在 WPF 中,TabControl 可以直接将 ItemsSource 绑定数据源,见 将 TabControl 绑定到数据的示例 http://msdn.microsoft.com/zh-cn/l ...
- 在DataGridView控件中加入ComboBox下拉列表框的实现
在DataGridView控件中加入ComboBox下拉列表框的实现 转自:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.htm ...
- ArcGIS API for Silverlight中加载Google地形图(瓦片图)
原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...
- 在Silverlight中实施RESTful调用
在Silverlight中实施RESTful调用: http://book.51cto.com/art/201006/206314.htm http://bbs.csdn.net/topic ...
- Silverlight中动画的性能浅析
Silverlight中提供了StoryBoard实现动画,可是StoryBoard的性能实在不敢恭维,特别是动画很大的时候,计算机的CPU和内存的狂增,如此一来性能实在太差,在默认的动画效果中动画实 ...
- aspx利用cookie值来停止silverlight中的计时器
一.silverlight与silverlight中可以利用委托(delegate)来刷新frame.Refresh() 1.在子类中定义委托捕捉关闭事件按钮 public delegate void ...
随机推荐
- js实现各种复制到剪贴板的方法
一.实现点击按钮,复制文本框中的的内容 <script type="text/javascript"> function copyUrl2() { var Url2=d ...
- BOM DOM jQuery
. BOM . location相关 . location.href . location.href="http://www.sogo.com" . location.reload ...
- linux 文件搜索
locate 文件名 在后台数据库中按文件名搜索,搜索速度快,不用遍历整个操作系统 /var/lib/mlocate locate 命令所搜索的后台数据库 updatedb 手动更新数据库 新建的文 ...
- layer.confirm在ASP.NET控件onclick上面的应用方法
有些时候,你可能要修改控件的事件,元素本身.等,这个时候如何操作呢?下面提供一个思路: <asp:LinkButton Visible="false" ID="sh ...
- linux强制拷贝避免输入yes方法
Linux下默认cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供两种Linux下cp 覆盖方法. 1) 取消cp的alias,这不 ...
- CF402D Upgrading Array
原题链接 先用素数筛筛下素数,然后考虑贪心去操作. 先求前缀\(GCD\)(求到\(GCD\)为\(1\)就不用再往下求了),得到数组\(G[i]\),然后从后往前扫,如果\(f(G[i]) < ...
- AngularJS 高级程序设计
1.5.4 安装Web服务器 原来的: connect.static("../angularjs"); 报错.可以修改为: var connect = require('conne ...
- Codeforces 791B. Bear and Friendship Condition 联通快 完全图
B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes in ...
- [最新原创电子书]lazarus开发者入门及中级教程
目前市面上没有任何一本完整的书,介绍Lazarus,Firebird这两个优秀的开发工具,同时还有一个作为他们之间桥梁的开发套件ZeosDBO,也没有任何完整的中文开发指南,本书以这三种开发套件为主线 ...
- Javascript的一个怪现象
javascript有一个怪现象,就是减法也会导致小数位数问题,是一个麻烦的问题,比如. <html><script> var a=10,b=20.1; alert( a - ...