前景提要
关于ItemsControl的绑定问题
0 悬赏园豆: 20 [待解决问题] 我想用ItemsControl来展示一个竖着排列的数据,就像stackpanel那样竖着展示
可我用ItemsSource绑定,没有任何展示
我用的是一个UserControl,在后台代码上用DataContext绑定了一个School,类里面有个属性是IList<Student>,我想用ItemsControl绑定的就是IList<Student>,展示是Student里面的NAME属性
大概界面上绑定是这样: <DockPanel> <ScrollViewer Name="scrollViewer" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> <Border Margin="20"> <StackPanel Name="content"> <StackPanel ...> <TextBlock Text="学校名称"></TextBlock> <TextBox ... Text="{Binding Name, Mode=TwoWay}"></TextBox> </StackPanel> <StackPanel Orientation="Horizontal" Width="450" Height="35"> <TextBlock Text="学校状态"></TextBlock> <ComboBox ... ItemsSource="{Binding PlatformTypes}" SelectionChanged="PlatformType_SelectionChanged"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Converter={StaticResource platformConverter}}"></TextBlock> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> </StackPanel> <StackPanel Orientation="Vertical" Width="450" x:Name="selectModelPanel"> <StackPanel Orientation="Horizontal" Width="450"> <TextBlock Width="80" TextAlignment="Right" VerticalAlignment="Center" Text="学生名字列表"></TextBlock> <!-- 关注点, start --> <ItemsControl x:Name="studentList" ItemsSource="{Binding ModelList}"> <ItemsControl.ItemTemplate> <DataTemplate> <Border> <TextBlock Text="{Binding NAME}"></TextBlock> </Border> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> <!-- 关注点, end --> </StackPanel> </StackPanel> <Button ... Name="addstudent" Click="AddStudent_Click" Content="增加学生"></Button> </StackPanel> </Border> </ScrollViewer> </DockPanel> public class School{ public IList<Student> Students {get;set;} public string Name {get;set;} ... } public class Student{ public string NAME {get;set;} public Sex sex {get;set;} public short level {get;set;} ... }
请问一下我该怎么绑定,ItemsControl应该怎么写
要么用ListBox也成,但ListBox我也绑不上QAQ
绑定菜鸟求助... wpf c# 数据绑定 XAML 伊人为谁醉 | 初学一级 | 园豆: 189
提问于:2020-07-29 09:12 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(2) 0 <ItemsControl x:Name="studentList" ItemsSource="{Binding ModelList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border>
<ListBox itemsource={binding nameof(类里面有个属性是IList<另一个类>)}>
<ListBox.ItemTemplate>
<TextBlock Text="{Binding NAME}"></TextBlock>
</ListBox.ItemTemplate>
</ListBox>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl> 猝不及防 | 园豆:1976 (小虾三级) | 2020-07-29 09:40 不行啊,界面上ItemsControl那一块是空白的,我还忘记说了一点,我点击那个Button是弹出一个新的界面,在界面上选择了值之后,才在ItemsControl里面显示出来的,不知道这点是不是会有影响 支持( 0 ) 反对( 0 ) 伊人为谁醉 | 园豆:189 (初学一级) | 2020-07-29 10:10 @伊人为谁醉:
你这描述的不太清楚,模模糊糊的 支持( 0 ) 反对( 0 ) 猝不及防 | 园豆:1976 (小虾三级) | 2020-07-29 10:12 @猝不及防: 我修改了一下问题,描述有没有清楚一点 支持( 0 ) 反对( 0 ) 伊人为谁醉 | 园豆:189 (初学一级) | 2020-07-29 10:18 @伊人为谁醉: 把viewmodel也贴出来 支持( 0 ) 反对( 0 ) 猝不及防 | 园豆:1976 (小虾三级) | 2020-07-29 10:21 @猝不及防: viewmodel也差不多 支持( 0 ) 反对( 0 ) 伊人为谁醉 | 园豆:189 (初学一级) | 2020-07-29 10:42 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 <ListBox ...x:Name="studentList" ItemsSource="{Binding ModelList}" > <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding NAME}"></TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
试试这个方法呢,只用ListBox但是挺丑的 养鼠的猫 | 园豆:214 (菜鸟二级) | 2020-07-29 14:43 可以是可以,但只能是重新打开这个界面,做编辑的时候有用,新增的时候就是不能显示,在我点击按钮新增我给School的StudentList的值赋值付好了,但界面就是一个空白的ListBox,好奇怪啊 支持( 0 ) 反对( 0 ) 伊人为谁醉 | 园豆:189 (初学一级) | 2020-07-29 14:59 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。