如何动态地在数据网格中添加行

时间:2012-04-27 11:22:08

标签: wpf wpfdatagrid wpftoolkit

我正在使用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; }
    }
}

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

提前致谢

3 个答案:

答案 0 :(得分:0)

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

XAML

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

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

答案 1 :(得分:0)

XAML是这样的:

<DataGrid ItemsSource="{Binding}" /> 
背后的代码是:

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

并删除此行:

dataGrid1.ItemsSource = data1.ToArray();

答案 2 :(得分:0)

 data1.Add(new gm { no = 2, name = "vipul" }); // Remore ellipsis around gm.

在XAML中,只需检查以下内容

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