WPF —— ListBox控件、GroupBox控件详解

1、ListBox 介绍

ListBox 是一个 ItemsControl,这意味着它可以包含任何类型的对象的集合 (,例如字符串、图像或面板) 。

一个 ListBox 中的多个项是可见的,与仅 ComboBox具有所选项可见的项不同,除非 IsDropDownOpen 属性为 true。 该 SelectionMode 属性确定一次是否可以选择多个项 ListBox 。

2 常用的属性

ItemTemplate 子项模版标签

DataTemplate 子项里面数据的模版

3 ListBox的实例

动态绑定数据:使用cs代码添加子选项.必须添加ItemsSource="{Binding}"语法

静态绑定数据:直接使用标签添加子选项

cs 复制代码
<StackPanel Orientation="Horizontal" VerticalAlignment="Top">
   
    <ListBox Width="200"
             Height="400"
             Background="Pink"
             ItemsSource="{Binding}"
             Name="l2">
        <!--演示静态绑定数据-->
        <ListBoxItem>
            <Button>武庚纪</Button> 
        </ListBoxItem>
        <ListBoxItem>斗罗大陆</ListBoxItem>
        <ListBoxItem>星辰变</ListBoxItem>
        
    </ListBox>
    <!--演示的是动态绑定数据 ItemsSource="{Binding}"-->
    <!--演示自定义模版子项-->
    <ListBox Width="200"
             Height="400"
             Name="l1"
             FontSize="20"
             SelectionMode="Extended"
             ItemsSource="{Binding}"
             Margin="100,0,0,0"
             Background="Teal">
        <!--ItemTemplate 子项模版标签-->
        <!--DataTemplate 子项里面数据的模版-->
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Button Content="{Binding}" Background="red"></Button>
            </DataTemplate>
        </ListBox.ItemTemplate>
          
    </ListBox>
        
     <!--演示绑定数据是对象结构-->
    <ListBox Name="l3" Width="200" Margin="100,0,0,0" Background="Beige" 
             ItemsSource="{Binding}">
        
        
    </ListBox>

</StackPanel>
cs 复制代码
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        List<string> list = new List<string>();
        list.Add("张三");
        list.Add("李四");
        list.Add("王五");
        list.Add("马六");
        this.l1.DataContext = list;
       
        List<DaJia> list2 = new List<DaJia>();
        list2.Add(new DaJia() { 
            Name = "淀粉肠",
            Description = "是骨头捣碎泥"
        });
        list2.Add(new DaJia()
        {
            Name = "梅菜扣肉",
            Description = "淋巴结肉"
        });
        this.l3.DataContext = list2;
        this.l3.DisplayMemberPath = "Description"; //指定显示属性的路径
     
    }
}
public class DaJia {
    public string Name { get; set; } // 打假名称
    public string Description { get; set; } // 打假描述

}
相关推荐
zzyzxb7 小时前
WPF中Adorner和Style异同
wpf
棉晗榜8 小时前
WPF锚点页面,点击跳转到指定区域
wpf
zzyzxb9 小时前
Style/Setter、Template 属性、ControlTemplate 三者的关系
wpf
要记得喝水9 小时前
某公司WPF面试题(含答案和解析)--2
wpf
zzyzxb9 小时前
WPF中Template、Style、Adorner异同
wpf
小股虫18 小时前
数据一致性保障:从理论深度到架构实践的十年沉淀
架构·wpf
廋到被风吹走19 小时前
【Spring】PlatformTransactionManager详解
java·spring·wpf
源之缘-OFD先行者1 天前
全栈开发实战:WPF+FFmpeg+GIS,打造工业级雷达探测终端
ffmpeg·wpf
Poetinthedusk1 天前
WPF动画制作分享
wpf·动画
张人玉1 天前
WPF HTTPS 通信示例使用说明
数据库·网络协议·http·c#·wpf