2021-08-08 WPF控件专题 ComboBox 控件详解

2021-08-08 WPF控件专题 ComboBox 控件详解1 ComboBox 控件介绍手动添加项绑定数据代码里 ItemSourceIE AddDataConte ListItemSour Binding 2 具体案例 Grid Grid

1.ComboBox 控件介绍

  • 手动添加项
  • 绑定数据 代码里ItemSource IEnumerable List

    Items.Add

  • DataContext =List ItemSource=”{Binding}”

2.具体案例

<Grid> <ComboBox HorizontalAlignment="Left" Margin="96,95,0,0" VerticalAlignment="Top" Width="190" Height="30" VerticalContentAlignment="Center" > <ComboBoxItem Content="请选择" IsSelected="True"></ComboBoxItem> <ComboBoxItem Content="软件班"></ComboBoxItem> <ComboBoxItem Content="英语班"></ComboBoxItem> <ComboBoxItem Content="数学班"></ComboBoxItem> </ComboBox> <ComboBox Name="cboClasses" HorizontalAlignment="Left" Margin="96,182,0,0" VerticalAlignment="Top" Width="190" Height="30" VerticalContentAlignment="Center" ItemsSource="{Binding}" SelectionChanged="CboClasses_SelectionChanged"> </ComboBox> <Button Content="Button" HorizontalAlignment="Left" Margin="162,282,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/> </Grid> 
///  /// ComboBoxWindow.xaml 的交互逻辑 ///  public partial class ComboBoxWindow : Window { 
    public ComboBoxWindow() { 
    InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { 
    //获取数据源 List<ClassInfo> list = GetClassInfos(); // cboClasses.ItemsSource = list;//指定数据源 cboClasses.SelectedValuePath = "ClassId";//项的值对应的属性名 cboClasses.DisplayMemberPath = "ClassName";//项的显示文本对应的属性名 cboClasses.DataContext = list; //不能直接移除,也不能添加 //cboClasses.Items.Add(new ClassInfo() //{ 
    // ClassId = 4, // ClassName = "软件班" //}); //如果仍然要添加或移除其中的项??? 移除:先把ItemSource设置为null,然后通过list移除项,再重新指定ItemSource。 //cboClasses.ItemsSource = null; //list.Add(new ClassInfo() //{ 
    // ClassId = 4, // ClassName = "软件班" //}); //cboClasses.ItemsSource = list; //动态添加移除 //foreach(ClassInfo cinfo in list) //{ 
    // cboClasses.Items.Add(cinfo); //} } ///  /// 获取班级列表 ///  /// 
    private List<ClassInfo> GetClassInfos() { 
    List<ClassInfo> list = new List<ClassInfo>(); list.AddRange(new ClassInfo[] { 
    new ClassInfo() { 
    ClassId=0, ClassName="请选择" }, new ClassInfo() { 
    ClassId=1, ClassName="计算机一班" }, new ClassInfo() { 
    ClassId=2, ClassName="计算机二班" }, new ClassInfo() { 
    ClassId=3, ClassName="商务英语一班" }, new ClassInfo() { 
    ClassId=3, ClassName="商务英语二班" } }); return list; } private void Button_Click(object sender, RoutedEventArgs e) { 
    cboClasses.Items.RemoveAt(1); } //选择项改变时 private void CboClasses_SelectionChanged(object sender, SelectionChangedEventArgs e) { 
    //MessageBox.Show((cboClasses.SelectedItem as ClassInfo).ClassName); //当前选定的文本、改变前的选定文本 MessageBox.Show(cboClasses.Text); } } ///  /// 班级信息实体 ///  public class ClassInfo { 
    public int ClassId { 
    get; set; } public string ClassName { 
    get; set; } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212614.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:39
下一篇 2026年3月18日 下午7:40


相关推荐

  • 在北京的那三年——实习

    在北京的那三年——实习

    2022年1月19日
    58
  • Java字符串匹配_获取字符串

    Java字符串匹配_获取字符串文章目录一、示例二、解释1.replace()方法2.replaceAll()方法3.replaceFirst()方法4.常用的字符列表一、示例如图,都是为了替换字符串s中的”(“符号,但三种匹配方法,有三种不同的效果及写法。二、解释1.replace()方法replace()方法没有用到正则表达式,但会匹配所有的参数并进行替换2.replaceAll()方法replaceAll()方法使用的是正则表达式来匹配,而括号在正则表达式中是特殊字符,所以需要用双斜杠来进行转义,同时会匹配所..

    2022年8月21日
    8
  • stm32 sd卡读写_sd卡引脚定义图

    stm32 sd卡读写_sd卡引脚定义图SD卡   SD卡(SecureDigitalMemoryCard)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。   SD卡按容量分类,可以分为3类:SD卡、SDHC卡、SDXC…

    2022年10月3日
    6
  • 服务器cpu型号后面的字母,Intel 至强 E3服务器CPU后缀解读[通俗易懂]

    服务器cpu型号后面的字母,Intel 至强 E3服务器CPU后缀解读[通俗易懂]三、Intel至强E3服务器CPU后缀解读DIY玩家认识服务器CPU最多的无疑是E3神教,今天我们就总结下XeonE3神教的CPU后缀有什么特色。●V1-V5E3神教!从SNB开始,Intel就推出了E3系列至强CPU。由于阵脚一样,只需升级BIOS就能享用信仰级至强CPU,让2011年开始E3神教开始壮大。Intel也推出了E3的后续型号,与历代酷睿对应,从IvyBridge的V2到Sk…

    2022年5月29日
    54
  • centos解压命令

    centos解压命令-c:建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的:-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出参数-f是必须的-f:使用档案名…

    2022年5月16日
    34
  • Android Bundle类

    Android Bundle类

    2021年12月7日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号