《深入详解WPF-刘铁锰》读书笔记 - 用集合作为列表控件的条目源ItemSource
集合→ 列表:使用集合对象作为列表控件的ItemSource
- 列表式控件派生自ItemControl类,继承了ItemsSource属性,ItemsSource属性可以接收一个IEnumerable接口派生类的实例作为值(所有可被迭代遍历的集合都实现了这个接口,包括数组、List<T>deng )。
- 每个ItemsControl的派生类都有自己对应的条目容器(Item Container)。ItemsSource里存放的是一条一条的数据,要想把数据显示出来需要为其穿上外衣——条目容器。
//为ListBox设置Binding this.listBoxStudents.ItemSource=sutList;//stuList是准备好的数据源,Studentl类型列表 this.listBoxStudents.DisplayMemberPath="Name"; //当没有为ItemsControl显示地指定DataTemplate时, //SelectTemplate方法会为我们创建一个默认的最简单的DataTemplate,数据的“外衣”由DataTemplate穿上。 //为TextBox设置Binding Binding binding=new Binding("SelectedItem.Id"){Source=this.listBoxStudents};//源和Path this.textBoxId.SetBing(TextBox.TextProperty,binding);//为目标设置Binding
- 把C#代码中
this.listBoxStudents.DisplayMemberPath="Name";
删除,再在XAML中添加几行代码,ListBox的ItemTemplate属性(继承自ItemsControl类)的类型是DataTemplate。如下代码: -
<ListBox x:Name="listBoxStudent" Height="150" Margin="5"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Path=ID}" Width="30" /> <TextBlock Text="{Binding Path=Name}" Width="60" /> <TextBlock Text="{Binding Path=Age}" Width="30"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述