csharp: Data binding in WPF DataGrid control

<Window x:Class="WpfProjectDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol">
    <Grid>
        <DataGrid AutoGenerateColumns="False" Height="59" HorizontalAlignment="Left" Margin="50,39,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="272" MinRowHeight="20" MinHeight="10" Loaded="dataGrid1_Loaded">
        <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=id}" Header="序号" FontWeight="Bold"/>
                <DataGridTextColumn Binding="{Binding Path=name}" Header="姓名"/>

        </DataGrid.Columns>
         </DataGrid>
        <DataGrid AutoGenerateColumns="False" Height="112" HorizontalAlignment="Left" Margin="47,148,0,0" Name="dataGrid2" VerticalAlignment="Top" Width="326" Loaded="dataGrid2_Loaded">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=ID}" Header="序号" FontWeight="Bold"/>
                <DataGridTextColumn Binding="{Binding Path=Name}" Header="姓名"/>
                <DataGridTextColumn Binding="{Binding Path=BookTitle}" Header="书藉名称" FontWeight="Bold"/>
                <DataGridTextColumn Binding="{Binding Path=CreatDate}" Header="创作日期"/>
                <DataGridTextColumn Binding="{Binding Path=IsMVP}" Header="是否MVP" FontWeight="Bold"/>

            </DataGrid.Columns>

        </DataGrid>

    </Grid>
</Window>

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;
using System.Data;

namespace WpfProjectDemo
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        DataTable setData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Rows.Add(1, "geovindu");
            dt.Rows.Add(2, "涂聚文");
            return dt;
        }

        /// <summary>
        ///
        /// </summary>
        public MainWindow()
        {
            InitializeComponent();

        }

        /// <summary>
        /// List of Authors
        /// </summary>
        /// <returns></returns>
        private List<Author> LoadCollectionData()
        {
            List<Author> authors = new List<Author>();
            authors.Add(new Author()
            {
                ID = 101,
                Name = "Geovin Du",
                BookTitle = "Graphics Programming with GDI+",
                CreatDate = new DateTime(1975, 2, 23),
                IsMVP = false
            });
            authors.Add(new Author()
            {
                ID = 201,
                Name = "涂聚文",
                BookTitle = "Programming C#",
                CreatDate = new DateTime(1982, 4, 12),
                IsMVP = true
            });
            authors.Add(new Author()
            {
                ID = 244,
                Name = "塗聚文",
                BookTitle = "LINQ in Vista",
                CreatDate = new DateTime(1985, 9, 11),
                IsMVP = true
            });
            return authors;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGrid1_Loaded(object sender, RoutedEventArgs e)
        {
           // var grid = sender as DataGrid;
           // grid.ItemsSource = LoadCollectionData();
           //this.dataGrid1.ItemsSource = LoadCollectionData();
           this.dataGrid1.ItemsSource = setData().DefaultView;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGrid2_Loaded(object sender, RoutedEventArgs e)
        {
            this.dataGrid2.ItemsSource = LoadCollectionData();
        }

    }

    public class Author
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public DateTime CreatDate { get; set; }
        public string BookTitle { get; set; }
        public bool IsMVP { get; set; }
    }
}
时间: 2024-09-14 19:20:32

csharp: Data binding in WPF DataGrid control的相关文章

推荐: 玩转DataGrid自定义控件 --- Playing with DataGrid Control (zt)

datagrid|控件 Playing with DataGrid Control Author Date of Submission User Level Tushar Ameta 01/08/2002 Intermediate The article 揚laying with DATAGRID? presented above gives a user the overview to show the importance and versatility of the DATAGRID co

wpf datagrid tooltip为空怎么处理

问题描述 wpf datagrid tooltip为空怎么处理 我根据网上的资料,获得了在wpf下给datagrid统一给tooltip但是当datagrid的值为空时,tooltip就会变成一个白框,不好看,请问如何去掉,统一给提示的方法是: <Setter Property=""ToolTipService.ToolTip"" Value=""{Binding RelativeSource={RelativeSource Mode=Se

Flex Data Binding详解

Data BindIng简单的说就是当绑定源属性发生变化时,Flex 会把绑定源变化后属性的值赋给目的物的属性.做到了数据同步. Data BindIng 什么时候发生: 1.在绑定源属性值发生改变时发生. 2.在绑定源发出initialize事件时绑定发生一次. 让属性具有可绑定功能: 一般的,只要在属性前加上 [Bindable] 或 [Bindable(event="eventname")] 元标记即可 注意: 如果没有标出触发绑定的事件,正如[Bindable],Flex会自动

Silverlight3系列(七)数据绑定 Data Binding 3 数据类型转换 Data Converte

Silverlight3系列(七)数据绑定 Data Binding 3 数据类型转换 Data Converter 7 数据转换 在普通的情况下,数据从后台到前台显示,没有任何变化.看起来是符合逻辑的,但是有可能不是你想要的效果,数据源的数据可能是的低级别的(这里的低级别是说数据比较原始,或者说是数据库可以理解的,不是最终用户可以理解的形式),你不想让他直接显示在界面上.例如:你可能会将数字变成用户可以看懂的形式.或者是想让日期显示成长格式的字符串.如果是这样的话,你需要将数据转换成正确的显示

Data Binding 用户指南(Android)

1. 介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件. Data Binding库不仅灵活而且广泛兼容- 它是一个support库,因此你可以在所有的Android平台最低能到Android 2.1(API等级7+)上使用它. 需要:Android Studio 1.3.0-beta1 或更高版本. 测试版本 请注意:Data Binding库当前是测试版本.在Data Binding处于测试阶段时,开

wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序

问题描述 wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序 wpf datagrid控件拖动列头,改变顺序,获取改变后的排列顺序 解决方案 看看有没有列顺序改变触发的事件,如果有在这个事件里面获取

wpf datagrid 设置行颜色

问题描述 wpf datagrid 设置行颜色 ** 我是这样设置颜色,主要是验证一数据根据条件给行设置颜色.但是一滚动颜色设置就不对了,行颜色来回跑** DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex); if (rowContainer == null) { dataGrid.UpdateLayout(); dataGrid.ScrollIntoView(da

wpf datagrid 光标如何落到单元格里

问题描述 wpf datagrid 光标如何落到单元格里 我的这个datagrid没有写任何代码,是后台绑定的数据,表头也是. 我想后台控制编辑位置,这个效果 解决方案 http://bbs.csdn.net/topics/390426889

wpf datagrid如何获取DataGridCheckBoxColumn选中的值,后台如何判?

问题描述 wpf datagrid如何获取DataGridCheckBoxColumn选中的值,后台如何判? ,这个后台如何判断是否选中,并且获取选中的那一列.