初学WPF 以前用的Winform中的 DatagridView就是直接绑定Datasource 就ok了
然后在wpf中一直用的容器 Grid 以为还要各种模板 后台遍历 麻烦 没想到 还有一个 空间 Datagrid 就是相当于Winform中的 datagridview 也可以实现直接绑定数据源。操作如下:
XML:
<DataGrid Name="OperationData" Background="Transparent">
</DataGrid>
后台:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
datatable dt = 查询数据
OperationData.ItemsSource = dt.DefaultView;
}
是不是很简单 。
其实打代码和做事情一个道理的,不一定做的多就是好的,有些事不要太繁琐,去其糟泊取其精华才好,每次在网上搜知识点大部分都是长篇大论,一页有一页的的代码看我的直接就关了。但那些真的的大神都是点石成金,抓其重点,活学活用愿每一个程序员都能少打代码,多用思路。
实例源码:
xaml:
<Window x:Class="WpfApp5.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:///markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
<Grid>
<DataGrid Name="dataGrid" AutoGenerateColumns="True" Background="Transparent" Margin="5">
</DataGrid>
</Grid>
</Window>
C# code
using System.Data;
using System.Windows;
namespace WpfApp5
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//顺序是新建对bai象-->新建列du-->新建行,示例代码如下:
DataTable dt = new DataTable(); //新建对象
dt.Columns.Add("姓名", typeof(string)); //新建第一du列
dt.Columns.Add("年龄", typeof(int)); //新建第二列
dt.Rows.Add("张三", 23); //新建第一行,并赋值
dt.Rows.Add("李四", 25); //新建第二行,并赋值
dataGrid.ItemsSource = dt.DefaultView;//将数据源显示到dataGrid控件上
}
}
}
如果从XAML中生成表格的列名称,修改如下
<DataGrid x:Name="DATA_GRID" ItemsSource="{Binding}" AutoGenerateColumns="False" Grid.Row="0" Grid.Column="1" Background="LightGray" Margin="10">
<DataGrid.Columns>
<DataGridTextColumn Header="姓名" Binding="{Binding 姓名}"/>
<DataGridTextColumn Header="年龄" Binding="{Binding 年龄}"/>
</DataGrid.Columns>
</DataGrid>