20240215 WPF练习 数据模板 以及 数据绑定(ListBox,DataGrid)

本文介绍了如何在WPF中使用XAML定义ListBox和DataGrid,设置数据模板,通过Binding实现控件内容与数据对象的关联,并展示了如何在DataGrid中添加自定义列和操作按钮。
摘要由CSDN通过智能技术生成

1)首先需要再XAML文件中定义你需要的一个ListBox;

2)然后为该控件设定数据模板; 

        <ListBox.ItemTemplate> 指定的是该控件的模板        

        <DataTemplate>指定的是具体的数据模板

        该模板中定义了一个 StackPanel 用于存放你需要的数据, 我这边存放了一个颜色块(Border,填充对应的颜色,如果固定颜色,则Background里面直接指定固定的颜色)和一个文本,可以根据自己的需要设定不同的内容;

        然后将添加的内容要显示的信息,例如背景色,文本等绑定到后续会生成的一个类的成员属性上(反正你要能找到就好了)

        <ListBox x:Name="list1">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Border Width="10" Height="10" Background="{Binding ColorStr}"></Border>
                        <TextBlock Margin="20,0" Text="{Binding Name}"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>

        </ListBox>

3)去到业务代码的地方,创建一个你需要的类,里面包含你需要的数据(你的list需要多少个项目,你就建立多个个属性,要内容对齐)

    class Color {

        public string ColorStr { get; set; }
        public string Name { get; set; }
    }

4)然后定义一个列表,用于存储实例化后的一个个数据;


            List<Color> test = new List<Color>();
            test.Add(new Color() { ColorStr = "#9400D3", Name = "深兰花紫" });
            test.Add(new Color() { ColorStr = "#7B68EE", Name = "适中的板岩暗蓝灰色" });
            test.Add(new Color() { ColorStr = "#EE82EE", Name = "深岩暗蓝灰色" });
            test.Add(new Color() { ColorStr = "#9400D3", Name = "紫罗兰" });
            test.Add(new Color() { ColorStr = "#DB7093", Name = "苍白的紫罗兰红色" });
            test.Add(new Color() { ColorStr = "#FFB6C1", Name = "浅粉红" });
            list1.ItemsSource = test;

5)关键一点就是要关联,将XAML中定义的list1与你这边定义的test关联起来,指定数据源;

另外颜色代码可以上网搜搜即可 很多

今天第一次正式接触WPF,加油!

5)升级使用DataGrid

        <DataGrid x:Name="grid" AutoGenerateColumns="False" CanUserAddRows="False" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="代码" Binding="{Binding ColorStr}"> </DataGridTextColumn>
                <DataGridTextColumn Header="颜色" Binding="{Binding Name}"/>
                <DataGridTemplateColumn Header="显示">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Border Width="10" Height="10" Background="{Binding ColorStr}"/>
                                <TextBlock Margin="10,0" Text="{Binding Name}"/>
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="操作" >
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Button Content="添加" Margin="2,2,2,2" />
                                <Button Content="删除" Margin="2,2,2,2" />
                                <Button Content="编辑" Margin="2,2,2,2" />
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn>
            </DataGrid.Columns>
            
        </DataGrid>

目前先到这里后面再去学习 其他数据绑定相关以及命令绑定相关

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值