【问题标题】:how to add row in datagrid dynamically如何在datagrid中动态添加行
【发布时间】:2012-04-27 11:22:08
【问题描述】:

我正在使用 WPF 应用程序 这种形式有一个gridview和一个按钮

我正在使用 ObservableCollection 有 Generic 和一个像这样的类代码

public partial class MainWindow : Window
{
        public ObservableCollection<gm> data1 = new ObservableCollection<gm>();
        public MainWindow()
        {
            InitializeComponent();
        }
      //  public ObservableCollection<gm> data { get { return data1; } }

        private void button1_Click_1(object sender, RoutedEventArgs e)
        {

           data1.Add(new gm() { no = 2, name = "vipul" });
           dataGrid1.ItemsSource = data1.ToArray();
        }
    }
    public class gm
    {
        public int no { get; set; }
        public string name { get; set; }
    }
}

当我执行上面的代码时,它会在数据网格中添加空白行 请给我这个问题的解决方案 我想知道如何在 datagird 运行时添加行。

提前致谢

【问题讨论】:

    标签: wpf wpfdatagrid wpftoolkit


    【解决方案1】:

    将 autogeneratecolumns 设置为 true 并将 data1 设置为 itemssource

    xaml

     <DataGrid x:Name="dataGrid1" AutoGenerateColumns="True" />
    

    编辑:要获得 WPF 的强大功能,请查看 DataBinding/MVVM

    【讨论】:

      【解决方案2】:

      XAML 是这样的:

      <DataGrid ItemsSource="{Binding}" /> 
      

      后面的代码是这样的:

      public MainWindow()
      {
          InitializeComponent();
          DataContext = data1;
      }
      

      并删除这一行:

      dataGrid1.ItemsSource = data1.ToArray();
      

      【讨论】:

        【解决方案3】:
         data1.Add(new gm { no = 2, name = "vipul" }); // Remore ellipsis around gm.
        

        在 XAML 中只需检查以下内容

        1. 你有你的数据网格的数据源到{Binding Path="data1"}
        2. DataColumn 没有绑定到{Binding Path="no"}
        3. 名称的DataColumn 具有到{Binding Path="name"} 的绑定路径

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-21
          • 2021-11-14
          • 1970-01-01
          • 2011-08-26
          • 1970-01-01
          • 1970-01-01
          • 2015-07-29
          • 2010-12-24
          相关资源
          最近更新 更多