I'm not reinventing the wheel but I just had to implement this a simple datagrid grouped by a certain type of value. The datasource of the datagrid come from an XmlDataProvider.
Here is the xml file sample:
<?xml version="1.0" encoding="utf-8" ?> <ListeDePrix> <Articles nom="Telephone" value="15" vente="500" location="60,00" /> <Articles nom="Telephone" value="50" vente="450" location="45,50" /> <Articles nom="Telephone" value="250" vente="300" location="35,50" /> <Articles nom="Television" value="15" vente="600" location="55" /> <Articles nom="Television" value="50" vente="500" location="50" /> <Articles nom="Television" value="250" vente="400" location="30" /> <Articles nom="Tablet" value="15" vente="475" location="40" /> <Articles nom="Tablet" value="50" vente="425" location="37" /> <Articles nom="Tablet" value="250" vente="375" location="32" /> </ListeDePrix>
Here is the XAML file:
<Window.Resources> <XmlDataProvider x:Key="xmlfile" Source="XMLtest.xml" XPath="ListeDePrix/Articles"/> </Window.Resources> <StackPanel> <DataGrid AutoGenerateColumns="False"> <DataGrid.Resources> <CollectionViewSource x:Key="items" Source="{Binding Source={StaticResource xmlfile}}"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="@value" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </DataGrid.Resources> <DataGrid.ItemsSource> <Binding Source="{StaticResource items}"/> </DataGrid.ItemsSource> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding XPath=@nom, Mode=TwoWay}" Header="nom"/> <DataGridTextColumn Binding="{Binding XPath=@value, Mode=TwoWay}" Header="value"/> <DataGridTextColumn Binding="{Binding XPath=@location, Mode=TwoWay}" Header="Renting price"/> <DataGridTextColumn Binding="{Binding XPath=@vente, Mode=TwoWay}" Header="Sell price"/> </DataGrid.Columns> <DataGrid.GroupStyle> <GroupStyle /> </DataGrid.GroupStyle> </DataGrid> <Button Content="Save" Height="23" Name="button1" Width="75" HorizontalAlignment="Left" Click="button1_Click" /> </StackPanel>
I've added some code behind in order to be able to save the data into the xml file.
Code:
Aucun commentaire:
Enregistrer un commentaire