Silverlight中关于ComboBox的各种使用(基本上是汇总了往上的一些方法)

来源:互联网 发布:python 3.5 idle 编辑:程序博客网 时间:2024/04/30 00:32

前端放置了几个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; }    }