如何在WPF中每次按下按钮时都向DataGrid添加数据

蒂丽娜·W

我的WPF应用程序有两个文本框和一个DataGrid。有一个名为“添加”的按钮。我想在每次按下按钮时将保存在文本框中的数据添加到DataGrid中。在我的代码中,第一次仅更新DataGrid。我该如何解决。

XAML

  <TextBox x:Name="txt_description" Margin="0,10,20,15"/>
  <TextBox x:Name="txt_quantity" Margin="0,10,20,15" PreviewKeyDown="txt_quantity_PreviewKeyDown"/>
  <Button x:Name="btn_Add" Margin="0,0,0,15" Content="Add" FontSize="18" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="100" Click="btn_Add_Click" />
<DataGrid x:Name="dgd_items" Margin="10,10,10,10" FontSize="16"/>

C#

 private void btn_Add_Click(object sender, RoutedEventArgs e)
    {
        ItemsDto obj = new ItemsDto();
        obj.ItemCode = cmb_ItemCode.SelectedItem.ToString();
        obj.descripition = txt_description.Text;
        obj.qty = Convert.ToInt32(txt_quantity.Text);

        Dto.Add(obj);

        dgd_items.ItemsSource = Dto;

    }
真实案例

这是有关如何执行此操作的示例:

  1. XAML

    <Window x:Class="SolutionDatagrid.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="300"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <DataGrid x:Name="dgCustomers" ItemsSource="{Binding Customers}" Grid.Column="0"></DataGrid>
            <StackPanel Grid.Column="1" Orientation="Vertical" Margin="10">
                <TextBlock Margin="10" FontWeight="Bold">Customer Information:</TextBlock>
    
                <StackPanel Orientation="Vertical" Margin="10">
                    <TextBlock>First Name</TextBlock>
                    <TextBox x:Name="txtFirstName"/>
                </StackPanel>
    
                <StackPanel Orientation="Vertical" Margin="10">
                    <TextBlock>Last Name</TextBlock>
                    <TextBox x:Name="txtLastName"/>
                </StackPanel>
    
                <StackPanel Orientation="Vertical" Margin="10">
                    <TextBlock>Favourite Color</TextBlock>
                    <ComboBox x:Name="cbxColor" ItemsSource="{Binding Colours}"/>
                </StackPanel>
    
                <TextBlock Margin="10" FontWeight="Bold">Actions:</TextBlock>
                <Button Margin="10" Height="50" Click="Button_Add_Click">Add Data</Button>
                <Button Margin="10" Height="50" Click="Button_Reset_Click">Reset</Button>
            </StackPanel>
        </Grid>
    </Window>
    
  2. 代码

    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    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.Navigation;
    using System.Windows.Shapes;
    
    namespace SolutionDatagrid
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                this.InitializeComponent();
    
                // List of Customers
                this.Customers = new ObservableCollection<Customer>();
    
                // List of Colours
                this.Colours = new List<string>
                {
                    "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet"
                };
    
                this.DataContext = this;
            }
    
            // Properties
            public List<string> Colours { get; set; }
            public ObservableCollection<Customer> Customers { get; set; }
    
    
            // Button Click Events
            private void Button_Add_Click(object sender, RoutedEventArgs e)
            {
                // Variables to hold customer data
                string firstName = txtFirstName.Text;
                string lastName = txtLastName.Text;
                string colour = cbxColor.SelectedItem.ToString();
    
                // If our data is valid
                if(firstName !=null && lastName!=null && colour!=null)
                {
                    // Create new customer using data
                    Customer customer = new Customer { Name = firstName, Surname = lastName, Colour = colour };
    
                    // Add the new cutomer to the existing list of customers
                    this.Customers.Add(customer);
                }
            }
    
            private void Button_Reset_Click(object sender, RoutedEventArgs e)
            {
                this.Customers.Clear();
            }
        }
    
        // Customer Class
        public class Customer
        {
            // Properties
            public string Name { get; set; }
            public string Surname { get; set; }
            public string Colour { get; set; }
        }
    }
    
    1. 截屏

简单的WPF DataGrid和数据绑定示例:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过POST AJAX请求提交时如何在表单中添加数据?

来自分类Dev

jQuery-如何在每次按下按钮时创建一个新的可拖动div

来自分类Dev

每次我按下按钮时,jQuery都会阻止添加倍增

来自分类Dev

如何在Swift中按下按钮时使滑块出现?

来自分类Dev

如何在Div中按下按钮

来自分类Dev

每次按下按钮时如何打开GIF

来自分类Dev

如何在应用程序中实现按钮,以便每次用户按下按钮时,整个应用程序的默认颜色都会改变

来自分类Dev

每次单击按钮时,如何在列表框中添加项目?

来自分类Dev

通过POST AJAX请求提交时如何在表单中添加数据?

来自分类Dev

如何在xslt中按列明智地添加数据HTML表

来自分类Dev

jQuery-如何在每次按下按钮时创建一个新的可拖动div

来自分类Dev

在WPF中按下按钮时开始动画

来自分类Dev

如何在Swift中按下按钮时使滑块出现?

来自分类Dev

每次单击按钮时,如何在选项卡的文本中添加1?在JavaFX中

来自分类Dev

每次按下“ WPF Animmation”按钮时,我如何重播相同的动画

来自分类Dev

如何在jQuery中的单个保存按钮上更新数据和添加数据?

来自分类Dev

在每次for循环迭代之后,如何在Ionic的应用程序视图中添加数据?

来自分类Dev

按下按钮时如何在 NSMutableArray 中添加值

来自分类Dev

如何在按钮标签内添加数据关闭?

来自分类Dev

每次用户按下按钮时如何进行迭代?

来自分类Dev

每次按下按钮时重复声音

来自分类Dev

每次按下按钮时,将数据添加到 UITextView 中的新行

来自分类Dev

如何在数据表中添加数据导出按钮

来自分类Dev

JSP:如何在 JSP 中增加数据库的值?单击按钮时出错

来自分类Dev

如何在按钮按下时增加数字的值?

来自分类Dev

Shiny Server 中的 For 循环:如何在每次按下 ActionButton 时不覆盖值?

来自分类Dev

每次按下按钮时如何停止面板加载

来自分类Dev

WPF DataGrid - 如何在行编辑时显示一行中的按钮(检测编辑模式)?

来自分类Dev

按下按钮时如何继续添加?

Related 相关文章

  1. 1

    通过POST AJAX请求提交时如何在表单中添加数据?

  2. 2

    jQuery-如何在每次按下按钮时创建一个新的可拖动div

  3. 3

    每次我按下按钮时,jQuery都会阻止添加倍增

  4. 4

    如何在Swift中按下按钮时使滑块出现?

  5. 5

    如何在Div中按下按钮

  6. 6

    每次按下按钮时如何打开GIF

  7. 7

    如何在应用程序中实现按钮,以便每次用户按下按钮时,整个应用程序的默认颜色都会改变

  8. 8

    每次单击按钮时,如何在列表框中添加项目?

  9. 9

    通过POST AJAX请求提交时如何在表单中添加数据?

  10. 10

    如何在xslt中按列明智地添加数据HTML表

  11. 11

    jQuery-如何在每次按下按钮时创建一个新的可拖动div

  12. 12

    在WPF中按下按钮时开始动画

  13. 13

    如何在Swift中按下按钮时使滑块出现?

  14. 14

    每次单击按钮时,如何在选项卡的文本中添加1?在JavaFX中

  15. 15

    每次按下“ WPF Animmation”按钮时,我如何重播相同的动画

  16. 16

    如何在jQuery中的单个保存按钮上更新数据和添加数据?

  17. 17

    在每次for循环迭代之后,如何在Ionic的应用程序视图中添加数据?

  18. 18

    按下按钮时如何在 NSMutableArray 中添加值

  19. 19

    如何在按钮标签内添加数据关闭?

  20. 20

    每次用户按下按钮时如何进行迭代?

  21. 21

    每次按下按钮时重复声音

  22. 22

    每次按下按钮时,将数据添加到 UITextView 中的新行

  23. 23

    如何在数据表中添加数据导出按钮

  24. 24

    JSP:如何在 JSP 中增加数据库的值?单击按钮时出错

  25. 25

    如何在按钮按下时增加数字的值?

  26. 26

    Shiny Server 中的 For 循环:如何在每次按下 ActionButton 时不覆盖值?

  27. 27

    每次按下按钮时如何停止面板加载

  28. 28

    WPF DataGrid - 如何在行编辑时显示一行中的按钮(检测编辑模式)?

  29. 29

    按下按钮时如何继续添加?

热门标签

归档