Сравнение возможностей элементов управления DataGridView(WinForms) и DataGrid(WPF)
DataGridView.Мастер
У элемента DataGridView имеется связанный с ним мастер, который может генерировать код доступа к данным.
DataGridView.Источник Данных


-
База данных
-
Служба
-
Объект
-
SharePoint
DataGridView.Правка столбцов

DataGridView.Правка столбцов
При клике на кнопку "Добавить" появляется диалоговое окно, где можно указать тип и название колонки.

Типы столбцов:
- DataGridViewButtonColumn
- DataGridViewCheckBoxColumn
- DataGridViewComboBoxColumn
- DataGridViewImageColumn
- DataGridViewLinkColumn
- DataGridViewTextBoxColumn
DataGridView.Сценарии использования
Наиболее распространенные сценарии, включающие использование элемента DataGridView:
-
Несвязанный режим.
-
Связанный режим.
-
Виртуальный режим.
Сценарий 1.Несвязанный режим
Для отображения в элементе управления DataGridView данные необязательно хранить во внешнем источнике данных. При работе с небольшими объемами данных можно самостоятельно заполнить элемент управления и управлять данными через элемент управления. Такой режим называется несвязанным режимом.
Ключевые моменты сценария:
- В несвязанном режиме элемент управления заполняется вручную.
- Несвязанный режим хорошо подходит для работы с небольшими объемами данных, доступных только для чтения.
- Несвязанный режим также подходит для работы с таблицами с малой степенью заполнения.
Сценарий 2. Связанный Режим
Ключевые моменты сценария:
-
Автоматическое формирование столбцов на основе свойств источника данных или столбцов базы данных, а также автоматическое заполнение элемента управления.
-
Cвязанный режим подходит для взаимодействия с большими объемами данных.
-
Сортировка, закрепление и изменение порядка столбцов.
-
Поддержка буфера обмена позволяет копировать данные из собственных приложений в другие приложения.
Сценарий 3. Виртуальный режим
В случае особых требований, выходящих за пределы возможностей стандартной модели привязки данных, можно реализовать виртуальный режим для управления взаимодействием между элементом управления и данными. Реализация виртуального режима означает реализацию одного или нескольких обработчиков событий, позволяющих элементу управления запрашивать сведения о ячейках, когда они требуются.
Ключевые моменты сценария:
Виртуальный режим подходит для отображения очень больших объемов данных при необходимости точной настройки производительности.
DataGrid
- Id - идентификатор;
- FirstName - имя;
- LastName - фамилия;
- Sex - пол.
DataGrid.Заполнение данными
-
<Grid>
-
<Button Click="Button_Click_1" Content="Заполнить DataGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Width="150" Height="34"/>
-
<DataGrid Name="Users" AutoGenerateColumns="True" Margin="0,36,0,0">
-
</DataGrid>
-
</Grid>
-
public struct User {
-
public int Id { get; set; }
-
public string FirstName { get; set; }
-
public string LastName { get; set; }
-
public bool Sex { get; set; }
-
}
DataGrid.Заполнение данными
-
private void Button_Click_1(object sender, RoutedEventArgs e)
-
{
-
User[] user_source = new User[5];
-
string[] names = {"Иван", "Аня", "Катя", "Борис", "Валя"};
-
string[] lastnames = {"Зарипов", "Крайнова", "Лель", "Грачев", "Наумова"};
-
for (int i = 0; i < 5; i++)
-
{
-
user_source[i].Id = i + 1;
-
user_source[i].FirstName = names[i];
-
user_source[i].LastName = lastnames[i];
-
user_source[i].Sex = (i == 0 || i == 3) ? true : false;
-
}
-
Users.ItemsSource = user_source;
-
}
DataGrid.Заполнение данными


Таким образом массив структур user_source преобразовался в таблицу в dataGrid.
DataGrid.Типы столбцов
|
|
---|---|
DataGrid.Детали строк
- Она занимает всю ширину DataGrid и не врезается в отдельные столбцы, обеспечивая больше пространства для работы.
- Ее можно сконфигурировать так, чтобы она появлялась только для избранных строк, что позволяет убирать лишние детали, когда в них нет необходимости.

DataGrid.Детали строк
-
<DataGrid.RowDetailsTemplate>
-
<DataTemplate>
-
<Border Margin="10" Padding="10" BorderBrush="SteelBlue"
-
BorderThickness="2" CornerRadius="5">
-
<TextBlock Text="{Binding Path=Description}" TextWrapping="Wrap"
-
FontSize="10" MaxWidth="350"></TextBlock>
-
</Border>
-
</DataTemplate>
-
</DataGrid.RowDetailsTemplate>
Можно также добавить элементы управления, которые позволяют выполнять различные задачи (например, извлечь дополнительную информацию о товаре, поместить товар в корзину для покупок, отредактировать сведения и т.д.).
ВОПРОСЫ?
DataGridView vs DataGrid
By evgwed
DataGridView vs DataGrid
- 544