Bonjour,
J'ai pas mal de petit problème sur le datagrid de WPF pour des opérations simples ... Je débute et je n'ai pas encore saisie le fonctionnement ..
En parcourant les tutoriels voici ce que j'ai fait :
'Liaison linq to SQL
' Dans le constructeur du mainWindows
InitializeComponent()
_DbAnance = New AnanceDataContext
DataGridTask.DataContext = _DbAnance ' a quoi ca sert ?
Dim queryList = (From Task In _DbAnance.TASK
Join Pln In _DbAnance.T_ARBO_PLN On Task.PLAN_ID Equals Pln.PLN_ID
Join Fal In _DbAnance.T_ARBO_FAL On Task.FAL_ID Equals Fal.FAL_ID
Join Stn In _DbAnance.T_ARBO_STN On Task.STN_ID Equals Stn.STN_ID
Join MonHc In _DbAnance.HC On Task.HC_ID Equals MonHc.HC_ID).ToList()
DataGridTask.ItemsSource = queryList.Select(
Function(maTask) New With
{maTask.Task.TASK_NAME, maTask.Pln.PLN_NAME, maTask.Fal.FAL_NAME, maTask.Stn.STN_NAME, maTask.Task.DATE_START, maTask.Task.DURATION}).ToList()
Voici le code Xaml tres simple meme s'il comporte beaucoup de ligne :
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Gestion intégrée BETA" Height="731" Width="880"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:staticData="clr-namespace:GestionIntegree"
xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"
Visibility="Visible" WindowStyle="ToolWindow" >
<Window.Resources>
<staticData:FalList x:Key="FalList"/>
</Window.Resources>
<Grid x:Name="GridMain" RenderTransformOrigin="0.495,0.536">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="448" />
<RowDefinition Height="590*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="604" />
<ColumnDefinition Width="866*" />
</Grid.ColumnDefinitions>
<my:DataGrid x:Name="DataGridTask" AutoGenerateColumns="False" Grid.ColumnSpan="2" Height="448" CanUserAddRows="True" CanUserDeleteRows="True" CanUserResizeColumns="False" CanUserReorderColumns="False" ClipToBounds="True">
<my:DataGrid.Columns>
<my:DataGridTemplateColumn Header="Nom de la tâche" Width="115">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Height="22" Text="{Binding TASK_NAME}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding TASK_NAME}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate >
</my:DataGridTemplateColumn>
<my:DataGridTemplateColumn Header="Chaine de Montage" Width="115" >
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding FAL_NAME}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox Height="22" ItemsSource="{StaticResource FalList}" SelectedItem="{Binding FAL_NAME}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate >
</my:DataGridTemplateColumn>
<my:DataGridTemplateColumn Header="date de début" Width="100">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<my:DatePicker Language="FR" SelectedDate="{Binding DATE_START}" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker Height="20" />
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate >
</my:DataGridTemplateColumn>
<my:DataGridTemplateColumn Header="Durée" Width="48">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Height="22" Text="{Binding DURATION}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding DURATION}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate >
</my:DataGridTemplateColumn>
</my:DataGrid.Columns>
</my:DataGrid >
</Grid>
</Window>
Alors je n'arrive pas à ajouter une ligne dans mon datagrid malgré l'attribut CanUserAddRows="True"
Et je n'arrive pas à mettre à jour mes informations en base avec cette fonction :
Private Sub DataGridTask_CellEditEnding(ByVal sender As System.Object, ByVal e As Microsoft.Windows.Controls.DataGridCellEditEndingEventArgs) Handles DataGridTask.CellEditEnding
_DbAnance.SubmitChanges()
End Sub
Merci d'avance pour votre aide précieuse !!!
Cordialement, Albertini Olivier http://cv.albertini-olivier.com