WPF在ListBox内嵌入panel然后数据绑定中加入CheckBox

界面操作为:

 <ListBox Name="ListBoxMain" Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="1" >
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel HorizontalAlignment="Left" /> <!--加入panel-->
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel> 
            <ListBox.ItemTemplate> <!--绑定数据是另一个模板--> 
                    <DataTemplate>
                    <CheckBox  Content="{Binding ChengyuText}"   IsChecked="{Binding Checked ,Mode=TwoWay}" Click="CheckBox_Click"/>
                </DataTemplate>  
            </ListBox.ItemTemplate> 
        </ListBox>

参考如下:
https://www.yisu.com/jc/865833.html

另外注意:两者差别
Template模板之DataTemplate和ControlTemplate
https://www.jianshu.com/p/8e0e1d190d30

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPFListBox控件用于显示一系列的项,通常通过数据绑定技术将数据源与ListBox控件绑定,以便动态显示数据数据绑定允许你将界面元素与数据源关联起来,当数据源发生变化时,界面元素也会相应更新,实现数据的展示与交互。下面是WPFListBox控件绑定数据的基本步骤: 1. 定义数据源:首先你需要定义一个数据源,它通常是一个实现了IEnumerable接口的集合,比如List<T>或者ObservableCollection<T>。 2. 设置ItemsSource属性:将ListBox的ItemsSource属性绑定到你的数据源上。这样,ListBox就会根据集合的每个元素生成一个ListBoxItem。 3. 定义ItemTemplate:如果需要自定义ListBox项的显示方式,可以通过定义DataTemplate来自定义项的布局和样式。 4. 使用MVVM模式(可选):虽然绑定数据不一定要使用MVVM模式,但是在大型项目或者需要分离逻辑和视图的情况下,使用MVVM模式可以提高代码的可维护性和可扩展性。在MVVM模式,ViewModel通常充当数据源的角色,并且包含用于绑定的属性和命令。 5. 实现INotifyPropertyChanged接口(可选):当数据数据发生变化时,需要通知界面进行更新。如果你的数据源是ObservableCollection<T>,那么它会自动通知界面更新。如果使用其他类型的集合,你需要手动实现INotifyPropertyChanged接口或者继承自PropertyChangedEventArgs来通知界面数据变更。 示例代码如下: ```xml <ListBox ItemsSource="{Binding YourItemsSource}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding PropertyName1}"/> <TextBlock Text="{Binding PropertyName2}"/> <!-- 其他绑定 --> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> ``` 在上面的代码,`YourItemsSource`应该是一个属性,返回一个实现了IEnumerable接口的集合。每个集合项都应该有一个`PropertyName1`和`PropertyName2`属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值