Есть такой замечательный контрол для WPF – DataGrid. Он входит в состав WPF Toolkit. Но просто добавить строки в эту таблицу, как, например, в аналогичный контрол из Windows Forms 2.0, не получится. Надо действовать так: DataGrid нужно связать её с какой-нибудь коллекцией. Изменится коллекция - изменятся и строки в DataGrid.
Создаём класс с полями, аналогичными столбцам в таблице:
public class Person{
public string Name { get; set; }
public string EMail { get; set; }
}
Объявляем коллекцию:
ObservableCollection<Person> coll = new ObservableCollection<Person>();
И добавляем элементы в коллекцию вот так:
coll.Add(new Person() { Name = "Frank Grimmes", EMail = "mail@mail.mail" });
И привязываем коллекция к DataGrid:
dataGrid.ItemsSource = coll;
dataGrid.Items.Refresh();
После какого-либо изменения коллекции надо обновить "элементы" таблицы:
dataGrid.Items.Refresh();
И напоследок: в XAML создавать колонки надо так:
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="Имя" Binding="{Binding Path=Name}" />
<my:DataGridHyperlinkColumn Header="Электронная почта" Binding="{Binding Path=EMail}" />
</my:DataGrid.Columns>
P.S. : а ещё можно заставить класс Person наследовать интерфейс INotifyPropertyChange. Тогда не нужно будет обновлять таблицу каждый раз после изменения. Это будет делаться автоматически. Подробнее здесь. Вот и всё.public string Name { get; set; }
public string EMail { get; set; }
}
Объявляем коллекцию:
ObservableCollection<Person> coll = new ObservableCollection<Person>();
И добавляем элементы в коллекцию вот так:
coll.Add(new Person() { Name = "Frank Grimmes", EMail = "mail@mail.mail" });
И привязываем коллекция к DataGrid:
dataGrid.ItemsSource = coll;
dataGrid.Items.Refresh();
После какого-либо изменения коллекции надо обновить "элементы" таблицы:
dataGrid.Items.Refresh();
И напоследок: в XAML создавать колонки надо так:
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="Имя" Binding="{Binding Path=Name}" />
<my:DataGridHyperlinkColumn Header="Электронная почта" Binding="{Binding Path=EMail}" />
</my:DataGrid.Columns>