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 = 11, Name = "产品1" });
            _list.Add(new Product() { ID = 22, Name = "产品2" });
            _list.Add(new Product() { ID = 33, Name = "产品3" });
            _list.Add(new Product() { ID = 44, Name = "产品4" });
            _list.Add(new Product() { ID = 55, Name = "产品5" });
            _list.Add(new Product() { ID = 66, 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 = -1;

            for(int i =0;i<_list.Count;i++ )
            {
                if (_list[i].ID == 33)
                {
                    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; }
    }

 

转载于:https://www.cnblogs.com/Caceolod/archive/2012/08/24/2654049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值