三种wpf数据模板的使用(datagrid,listbox,combox)

13 篇文章 1 订阅
这篇博客介绍了WPF中常见的三种数据绑定控件——DataGrid,ListBox和ComboBox的使用方法。通过XAML和C#代码展示了如何绑定数据,包括显示字段、操作按钮以及自定义模板。示例包括了展示学生信息的DataGrid,年龄列表的ListBox和年龄选择的ComboBox,适合WPF初学者学习。
摘要由CSDN通过智能技术生成

wpf里最常见的三种数据模板,绑定的方法简单介绍下,初学者可以了解下。

一、datagrid

先看下效果图

 

xaml部分:

        <DataGrid  Name="gd" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="姓名" Binding="{Binding Name}" Width="100"></DataGridTextColumn>
                <DataGridTextColumn Header="性别" Binding="{Binding Sex}" Width="100"></DataGridTextColumn>
                <DataGridTextColumn Header="年龄" Binding="{Binding Age}" Width="100"></DataGridTextColumn>
                <DataGridTextColumn Header="身高" Binding="{Binding Height}" Width="100"></DataGridTextColumn>
                <DataGridTextColumn Header="体重" Binding="{Binding Weight}" Width="100"></DataGridTextColumn>
                <DataGridTemplateColumn Header="操作" Width="300">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Button  Content="增加"></Button>
                                <Button Content="删除"></Button>
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
            
        </DataGrid>

cs部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp3
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Load();
        }

        private void Load()
        {
          
            List<student> studentList = new List<student>();
            for (int i = 0; i < 5; i++)
            {  
                student st = new student();
                st.Name = "张三";
                st.Age = 22;
                st.Sex = "男";
                st.Weight = 60;
                st.Height = 170;
                st.Age += i;
                studentList.Add(st);
            }

            gd.ItemsSource = studentList;
        }
    }
    class student
    {
        string name;
        public string Name { get => name; set => name = value; }
        string sex;
        public string Sex { get => sex; set => sex = value; }
   
        int age;
        public int Age { get => age; set => age = value; }
       
        int height;
        public int Height { get => height; set => height = value; }
       
        int weitht;
        public int Weight { get => weitht; set => weitht = value; }


    
    }
}

二、listbox

先看效果图

 xaml'部分:

<Window x:Class="WpfApp3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp3"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources >
        <DataTemplate x:Key="dataTemplate1">
            <StackPanel  Orientation="Horizontal">
                <TextBlock Text="年龄:"></TextBlock>
                <TextBlock Text="{Binding Age}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        
        <ListBox  x:Name="lb" Width="300" Height="200" BorderBrush="Bisque"  ItemTemplate="{StaticResource dataTemplate1}"></ListBox>
    </Grid>
</Window>

cs部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp3
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Load2();
        }

        private void Load2()
        {

           
            List<Ages> ageList = new List<Ages>();
            for (int i = 0; i < 10; i++)
            { 
                Ages age = new Ages();
                age.Age += i;
                ageList.Add(age);
            }
            lb.ItemsSource = ageList;
         
        }


    }

    class Ages 
    {
        int age;
        public int Age { get => age; set => age = value; }
    }

}

三、combbox

xaml部分:

<Window x:Class="WpfApp3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp3"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources >
        <DataTemplate x:Key="dataTemplate1">
            <StackPanel  Orientation="Horizontal">
                <TextBlock Text="年龄:"></TextBlock>
                <TextBlock Text="{Binding Age}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
    <Grid>


        <ComboBox  x:Name="lb" ItemTemplate="{StaticResource dataTemplate1 }" Width=" 100" Height="30"></ComboBox>
    </Grid>
</Window>

 cs部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp3
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Load2();
        }

        private void Load2()
        {

           
            List<Ages> ageList = new List<Ages>();
            for (int i = 0; i < 10; i++)
            { 
                Ages age = new Ages();
                age.Age += i;
                ageList.Add(age);
            }
            lb.ItemsSource = ageList;
         
        }


    }

    class Ages 
    {
        int age;
        public int Age { get => age; set => age = value; }
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值