zoukankan      html  css  js  c++  java
  • WPF datagrid 动态增加列

    DataGrid动态增加列

    复制代码
    <Window x:Class="WpfApplication1.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">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <StackPanel Orientation="Horizontal">
                <Button Content="Add Column" Click="AddColumn_Click" Margin="5"/>
                <Button Content="Add Data" Click="AddData_Click" Margin="5"/>
            </StackPanel>
            <DataGrid x:Name="dataGrid" AutoGenerateColumns="True" Grid.Row="1"/>
        </Grid>
    </Window>
    复制代码
    复制代码
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Dynamic;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    
    namespace WpfApplication1
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            ObservableCollection<ExpandoObject> items = new ObservableCollection<ExpandoObject>();
            public MainWindow()
            {
                InitializeComponent();
                for (int i = 0; i < 5; i++)
                {
                    dynamic item = new ExpandoObject();
                    item.A = "Property A value - " + i.ToString();
                    item.B = "Property B value - " + i.ToString();
                    items.Add(item);
                }
    
                dataGrid.Columns.Add(new DataGridTextColumn() { Header = "A", Binding = new Binding("A") });
                dataGrid.Columns.Add(new DataGridTextColumn() { Header = "B", Binding = new Binding("B") });
                dataGrid.ItemsSource = items;
            }
    
            private void AddData_Click(object sender, RoutedEventArgs e)
            {
                dynamic item = new ExpandoObject();
                item.A = "New Item - A";
                item.B = "New Item - B";
                items.Add(item);
            }
    
            int newColumnIndex = 1;
            private void AddColumn_Click(object sender, RoutedEventArgs e)
            {
                foreach (IDictionary<String, Object> item in items)
                {
                    item.Add("NewColumn" + newColumnIndex, "New Column Value - " + newColumnIndex.ToString());
                }
    
                dataGrid.Columns.Add(new DataGridTextColumn() { Header = "New Column" + newColumnIndex, Binding = new Binding("NewColumn" + newColumnIndex) });
    
                newColumnIndex++;
            }
        }
    }
    复制代码

     https://social.microsoft.com/Forums/zh-CN/69ac1292-9512-4bd3-b691-795f64cb0aa0/wpf-datagrid-?forum=wpfzhchs

  • 相关阅读:
    DevExpress 学习使用之 ComboBoxEdit
    DevExpress 学习使用之 NavBarControl
    代码重构方向原则指导(转载 cnblogs)
    适合编写代码的字体 Source Code Pro
    Asycn/Await 异步编程初窥(二)
    Asycn/Await 异步编程初窥
    【数据结构】冒泡排序算法示例
    【数据结构】分治算法求解假硬币问题
    【数据结构】图结构操作示例
    【数据结构】建立和平衡AVL二叉树
  • 原文地址:https://www.cnblogs.com/lsgsanxiao/p/4691773.html
Copyright © 2011-2022 走看看