WPF Toolkit – Релиз DataGrid, DatePicker и Calendar

 

Финальные версии очень полезных элементов управления

Не увидел об этом постов, поэтому решил написать – на PDC был анонсирован WPF Toolkit – набор элементов управления для WPF вместе с исходным кодом. WPF Toolkit доступен на сайте https://www.codeplex.com/wpf, где традиционно размещаются проекты с доступными исходными кодами.

Пример всех трех данных контролов - DataGrid, DatePicker и Calendar в их финальных версиях:

image

 

 

Упрощенный XAML данного примера (без стилей и дополнительных свойств):

    1: <toolkit:DataGrid>
    2:                 <toolkit:DataGrid.Columns>
    3:                 <toolkit:DataGridTextColumn Binding="{Binding OrderID}" Header="Order ID" />
    4:                 <toolkit:DataGridTextColumn Binding="{Binding CustomerID}" Header="Customer ID" />
    5:                 <toolkit:DataGridTemplateColumn  Header="OrderDate" MinWidth="100">
    6:                     <toolkit:DataGridTemplateColumn.CellEditingTemplate>
    7:                         <DataTemplate>
    8:                             <toolkit:DatePicker SelectedDate="{Binding OrderDate, Mode=TwoWay}" SelectedDateFormat="Short" />
    9:                         </DataTemplate>
   10:                     </toolkit:DataGridTemplateColumn.CellEditingTemplate>
   11:                     <toolkit:DataGridTemplateColumn.CellTemplate>
   12:                         <DataTemplate>
   13:                             <TextBlock Text="{Binding OrderDate, Mode=TwoWay, StringFormat=d}" />
   14:                         </DataTemplate>
   15:                     </toolkit:DataGridTemplateColumn.CellTemplate>
   16:                 </toolkit:DataGridTemplateColumn>

Обратите внимание на использование TemplateColumn – с помощью его вы можете использовать любые элементы управления для колонок DataGrid.

Что интересно, данный DataGrid поддерживает множество полезных возможностей:

  • Авто-генерирование колонок
  • Различные типы колонок: Text, CheckBox, ComboBox, Button, Hyperlink + TemplateColumn
  • Редактирование
  • Фильтры и группировки
  • Virtualization + Item Container Recycling – напишу про это отдельным постом
  • Deferred Scrolling – отложенный скроллинг

Однако не стоит забывать про мощь DataTemplates при их использовании даже с простым ListBox!

Также в WPF Toolkit содержится предварительная версия (Preview) VisualStateManager (VSM) – Миша кратко упоминал об этой возможности Silverlight 2, теперь она будет и в WPF для того, чтобы можно было проще повторно использовать один и тот же XAML и в WPF, и в Silverlight.

Про WPF Futures напишу отдельно.