
Die Deutsche Version des Visual Studio 2010, steht unter
http://www.microsoft.com/germany/visualstudio/try/download.aspx
für den Download bereit.
An dieser Stelle, möchte ein kurzen Blick auf das neue Steuerelement DataGrid werfen.
Wie man es von der Windows Forms Version gewohnt ist, Bindet man eine Datenquelle an dieses Steuerelement und das DataGrid zeigt es an.

um Z.b. diese Fenster zu erzeugen bedarf nur dieser paar Zeilen XAML Code.
<Window x:Class="WpfApplication28.MainWindow" xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</a xmlns:x="<a href=">http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
</a x:Key="Data" Source="<a>file:///c:/blogs/larsschmitt/Contact.xml" XPath="/contacts"/>
</Window.Resources>
<Grid>
<DataGrid DataContext="{StaticResource Data}" ItemsSource="{Binding XPath=ContactItem}"/>
</Grid>
</Window> An diesem Beispiel kann man auch schon gut erkennen, dass man auch dieses mal nicht nur auf Text Zellen beschränkt ist.
Die neue Version bringt erst einmal die folgende SpaltenTypen Ich denke mal diese unterschiedlichen Spaltentypen erklären sich von selber.
DataGridCheckBoxColumn
DataGridComboBoxColumn
DataGridHyperlinkColumn
DataGridTemplateColumn
DataGridTextColumn
Selbstverständlich kann die automatische Spalten anzeige, über das Property AutoGenerateColumns deaktiviert werden, somit können die Spalten dann vom Entwickler selbst erzeugt werden. (Ebenfalls wäre eine teils Generiert und teils per Hand Lösung möglich)
<Window x:Class="WpfApplication28.MainWindow"
xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</a
xmlns:x="<a href=">http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
</a x:Key="Data" Source="<a>file:///c:/blogs/larsschmitt/Contact.xml" XPath="/contacts"/>
</Window.Resources>
<Grid>
<DataGrid DataContext="{StaticResource Data}" ItemsSource="{Binding XPath=ContactItem}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding XPath=FirstName}" Header="Firstname"/>
<DataGridTextColumn Binding="{Binding XPath=LastName}" Header="Lastname"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Normalerweise bin ich unter WPF kein Freund des Designers, jedoch an dieser stelle, lohnt es sich auch mal ein Blick in den Designers des neue Visual Studio 2010 zu werfen.
| So richtig interessant wird es jedoch erst, mitsamt der neuen Version vom Visual Studio. |
Ein kleiner Klick auf das Label, mit der Aufschrift Generate Columns erzeugt mit dieser Datenquelle.
<Grid>
<DataGrid DataContext="{StaticResource Data}" ItemsSource="{Binding XPath=ContactItem}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding XPath=FirstName}" Header="Firstname"/>
<DataGridTextColumn Binding="{Binding XPath=LastName}" Header="Lastname"/>
<DataGridTextColumn Binding="{Binding Path=Name, Mode=OneWay}" Header="Name" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=Value}" Header="Value" />
<DataGridComboBoxColumn Header="NodeType" IsReadOnly="True" SelectedItemBinding="{Binding Path=NodeType, Mode=OneWay}" />
<DataGridTextColumn Binding="{Binding Path=ParentNode, Mode=OneWay}" CanUserSort="False" Header="ParentNode" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=ChildNodes, Mode=OneWay}" CanUserSort="False" Header="ChildNodes" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=PreviousSibling, Mode=OneWay}" CanUserSort="False" Header="PreviousSibling" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=NextSibling, Mode=OneWay}" CanUserSort="False" Header="NextSibling" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=Attributes, Mode=OneWay}" CanUserSort="False" Header="Attributes" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=OwnerDocument, Mode=OneWay}" CanUserSort="False" Header="OwnerDocument" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=FirstChild, Mode=OneWay}" CanUserSort="False" Header="FirstChild" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=LastChild, Mode=OneWay}" CanUserSort="False" Header="LastChild" IsReadOnly="True" />
<DataGridCheckBoxColumn Binding="{Binding Path=HasChildNodes, Mode=OneWay}" Header="HasChildNodes" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=NamespaceURI, Mode=OneWay}" Header="NamespaceURI" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=Prefix}" Header="Prefix" />
<DataGridTextColumn Binding="{Binding Path=LocalName, Mode=OneWay}" Header="LocalName" IsReadOnly="True" />
<DataGridCheckBoxColumn Binding="{Binding Path=IsReadOnly, Mode=OneWay}" Header="IsReadOnly" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=InnerText}" Header="InnerText" />
<DataGridTextColumn Binding="{Binding Path=OuterXml, Mode=OneWay}" Header="OuterXml" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=InnerXml}" Header="InnerXml" />
<DataGridTextColumn Binding="{Binding Path=SchemaInfo, Mode=OneWay}" CanUserSort="False" Header="SchemaInfo" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Path=BaseURI, Mode=OneWay}" Header="BaseURI" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</Grid> Aber was ist, wenn man nur einige Spalten braucht?
Auch an dieser Stelle, kann das Visual Studio helfen. Hinter dem Label mit der Aufschrift Edit Property-Bound Columns verbirgt sich ein Fenster, in dem man auch einzelne Spalten auswählen kann.
Meiner Meinung nach rücken mit diesem sehr gut gelungenen Control, komplett mit den WPF-Core Controls entwickelte Business Anwendungen, einen großen Schritt näher.
Da der Release Termin, für das .Net Framework 4.0 immer näher rückt (12.04.2010), möchte ich an dieser Stelle, mal einen kleinen Blick auf die (neuen) Controls werfen.
Das Calendar Control ist ganz klar ein Teilprodukt des DatePicker und bietet so dem Entwickler, eine weitere Möglichkeit der Datumsauswahl.
Dieses Steuerelement, kann mittels des Properties DisplayMode in seine 3 Initial Ansichten betrieben werden.
 | ‘DisplayMode Month’ Die Default mäßige Ansicht des neun Calendar Controls, im diesem kann der Tag des im oben angegebenen Zeitraumes ausgewählt werden. Mit einem Klick auf das obere Label ‘April 2010’, gelangt der Anwender zur der zweiten von 3 möglichen Ansichten, dieses Steuerelements. |
 | ‘DisplayMode Year’ Wie unschwer zu erkennen, kann der Anwender an dieser Stelle den Betreffende Monat ausgewählt werden Mit einem weitere Klick auf das Jahr gelangt der Anwender zur letzten Ansicht dieses Steuerlements |
 | ‘DisplayMode Decade’ Zu guter letzt wird an dieser Stelle das betreffende Jahr ausgewählt |
Des weiteren bietet dieses Control, das nette Feature der unterschiedlichen Selektionsweisen.
- SingleDate (nur ein Tag wählbar)
- SingleRange (einen zusammenhängenden Zeitraum auswählen)
- MultiRange (verschiedenen nicht zusammenhängende Zeiträume mittels der STRG auswählen)
- None ( was macht diese Funktion doch gleich ????)