<Window x:Class="WpfDemo.WinDataGrid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:assembly="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfDemo"
Title="WinDataGrid" Height="591" Width="487" Loaded="Window_Loaded_1">
<Window.Resources>
<ObjectDataProvider x:Key="keySex" MethodName="GetValues" ObjectType="{x:Type assembly:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type Type="local:OrderStatus"></x:Type>
<!--引用后台的枚举类型,为字段‘性别’提供数据源。上面引用了命名空间Demo-->
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources> <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="37*"/>
<ColumnDefinition Width="60*"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="datagrid" AutoGenerateColumns="False" Margin="0,44,0,0" CanUserAddRows="False" LoadingRow="datagrid_LoadingRow" Grid.ColumnSpan="2" FrozenColumnCount="1">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Border Margin="10" Padding="10" BorderBrush="SteelBlue" BorderThickness="3" CornerRadius="5">
<TextBlock Text="{Binding Path=Rack}" TextWrapping="Wrap"></TextBlock>
</Border>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="商品编号" Width="60" Binding="{Binding Path=Number}" ></DataGridTextColumn>
<DataGridTextColumn Header="商品名称" Width="90" Binding="{Binding Path=NAME}">
</DataGridTextColumn>
<DataGridTextColumn Header="价格" Width="80" Binding="{Binding Path=UnitCost, StringFormat={}{0:C}}"></DataGridTextColumn>
<DataGridTextColumn Header="简介" Width="175" Binding="{Binding Path=Description}"></DataGridTextColumn>
<DataGridCheckBoxColumn Header="是否售罄" Width="80" Binding="{ Binding Path=isSoldOut}"></DataGridCheckBoxColumn>
<DataGridTemplateColumn Header="状态">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Status}"/>
<!--显示状态时显示 TextBlock里的值-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<!--编辑状态就切换到ComboBox里进行下拉选择操作-->
<ComboBox x:Name="taskCombo" ItemsSource="{Binding Source={StaticResource keySex}}" SelectedItem ="{Binding Path=Status}" IsSynchronizedWithCurrentItem="False"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="日期">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="4" Text="{Binding Path=AddDay,StringFormat={}{0:yyyy-MM-dd}}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Path=AddDay,Mode=TwoWay}">
</DatePicker>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid> </Grid>
</Window>

后台代码很简单。。

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;
using WpfDemo.Class;
namespace WpfDemo
{
/// <summary>
/// WinDataGrid.xaml 的交互逻辑
/// </summary>
public partial class WinDataGrid : Window
{
DataBind db = new DataBind();
private SolidColorBrush heiglihtbrush = new SolidColorBrush(Colors.Orange);
private SolidColorBrush normalbrush = new SolidColorBrush(Colors.White);
public WinDataGrid()
{
InitializeComponent();
} private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
datagrid.ItemsSource = db.GetProduct().DefaultView; }
private void datagrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
int i=e.Row.GetIndex();
DataTable dt = db.GetProduct();
if (int.Parse(dt.Rows[i]["unitcost"].ToString()) > )
{
e.Row.Background = heiglihtbrush;
}
else
{
e.Row.Background = normalbrush;
}
}
} }
namespace WpfDemo
{
public enum OrderStatus
{
None,
New,
Processing,
Shipped,
Received
}
}

做winfrom多了,不习惯wpf的绑定的方式。相信用的多了就好啦。理论上的东西,网上一搜一大片。就不复述了。这里只是一个简单的例子。
sql表如下。。没具体涵义。。就是为了实现例子拼凑的。

WPF datagrid 初学的更多相关文章

  1. WPF DataGrid常用属性记录

    WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭 ...

  2. WPF DATAGRID - COMMITTING CHANGES CELL-BY-CELL

    In my recent codeproject article on the DataGrid I described a number of techniques for handling the ...

  3. WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.

    WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次  悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失 ...

  4. xceed wpf datagrid

    <!--*********************************************************************************** Extended ...

  5. 获取wpf datagrid当前被编辑单元格的内容

    原文 获取wpf datagrid当前被编辑单元格的内容 确认修改单元个的值, 使用到datagrid的两个事件 开始编辑事件 BeginningEdit="dataGrid_Beginni ...

  6. WPF DataGrid绑定一个组合列

    WPF DataGrid绑定一个组合列 前台: <Page.Resources>        <local:InfoConverter x:Key="converter& ...

  7. WPF DataGrid自定义样式

    微软的WPF DataGrid中有很多的属性和样式,你可以调整,以寻找合适的(如果你是一名设计师).下面,找到我的小抄造型的网格.它不是100%全面,但它可以让你走得很远,有一些非常有用的技巧和陷阱. ...

  8. WPF DataGrid显格式

    Guide to WPF DataGrid formatting using bindings Peter Huber SG, 25 Nov 2013 CPOL    4.83 (13 votes) ...

  9. WPF DataGrid Custommization using Style and Template

    WPF DataGrid Custommization using Style and Template 代码下载:http://download.csdn.net/detail/wujicai/81 ...

随机推荐

  1. docker 容器管理上

    Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: docker start container_id //启动容器后,可以使用 ...

  2. Codeforces 325E

    Codeforces 325E 原题 题目描述:给出\(n\)个点, 编号为\(0 \text ~ n-1\),每个点连出两条边分别为\(2i\)和\(2i+1\)(\(mod n\)),现从\(0\ ...

  3. 标头“Vary:Accept-Encoding”指定方法及其重要性分析

    原文地址:http://www.webkaka.com/blog/archives/how-to-set-Vary-Accept-Encoding-header.html 在webkaka的网站速度诊 ...

  4. RBF network

    1.radial basis function RBF表示某种距离,$\mu_m$为中心点,相当于将点$x$到中心点的某种距离作为特征转换 Output方法可以根据需求任意选取(比如使用SVM,log ...

  5. JAVA之数组查询binarySearch()方法详解

    binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要,binarySearch()有两种参数类型 注:此法为二分搜索法,故查询前需要用sort()方法将数组排序,如果数组 ...

  6. CAD各版本注册表

    AutoCAD 2010 HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:804 AutoCAD 2010 (32) HKEY ...

  7. CentOS7配置VNC Server

    CentOS7与6有些许变化,感觉有点不太适应. Step 1: 安装tigervnc server 和 X11 fonts: [root@mdrill ~]# yum install tigervn ...

  8. NSString+URLEncoding

    NSString+URLEncoding.h #import <Foundation/Foundation.h> @interface NSString(URLEncoding) - (N ...

  9. iOS调用系统声音与振动

    如何调用系统声音?[iphone 调用系统铃声与震动功能] 首先要在工程里加入Audio Toolbox framework这个库,然后在需要调用的文件里#import <AudioToolbo ...

  10. BST的删除

    #include<iostream> #include<math.h> #include<stdio.h> #include<stdlib.h> #in ...