2012-04-27 2 views
0

Я с помощью приложения WPF в этой форме есть один GridView и одну кнопкукак добавить строку в DataGrid динамически

Я использую ObservableCollection имеют универсальный и один класс подобный код

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.

заранее спасибо

ответ

0

набор AutoGenerateColumns к истинным и просто установить DATA1, как ItemsSource

XAML

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

EDIT: чтобы получить власть WPF смотреть в DataBinding/MVVM

0

XAML выглядит следующим образом:

<DataGrid ItemsSource="{Binding}" /> 

код за это:

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

и удалить эту строку:

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

В XAML просто проверить следующее, что

  1. Вы DataSource вашего DataGrid к {Binding Path="data1"}
  2. DataColumn вещества не имеют привязки к {Binding Path="no"}
  3. DataColumn названия имеют обязательный путь к {Binding Path="name"}