Bonjour,
Je dois malheureusement corriger et déboguer le code d'une autre personne.
J'ai un DataGrid avec plusieurs colonnes nommées. Ces colonnes contiennent des données qui proviennent de la bdd...
Lors d'un clic sur ces données et normalement uniquement sur celles-ci, une popup d'édition de données s'ouvre.
Seulement voilà lors du clic sur le nom/titre des colonnes, cette popup s'ouvre également, ce dont je ne souhaite pas puisque le clic sur les titres doit être disponible seulement pour trier les données.
Comment différencier les champs et les titres des colonnes dans le vb puisque la liste de données est automatique et donc non accessible dans ce bout de code.
Je suis désolé il manque peut-être des infos et c'est peut-être vraiment stupide mais je suis trèèèèès débutant
Voici le code Xaml : (une simple DataGrid)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <sdk:DataGrid x:Name="Grid1" ItemsSource="{Binding WorkOrderList}" AutoGenerateColumns="False" Grid.Row="1" IsReadOnly="True" Margin="0"> <sdk:DataGrid.Columns> <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Number" Width="auto" Binding="{Binding Employee.ProjectNumber}" ElementStyle="{StaticResource DatagridColumn}" /> . . <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Hours" Width="Auto" Binding="{Binding Time.Hours, Mode=TwoWay}"/> <!--<sdk:DataGridTemplateColumn CanUserSort="True" CellTemplate="{StaticResource RowItem}" />--> </sdk:DataGrid.Columns> </sdk:DataGrid>
En gros je souhaiterais donc que la popup d'édition s'ouvre sur les données liées au Binding et non sur les titres
et le code VB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Grid1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles Grid1.SelectionChanged Dim dg As DataGrid = DirectCast(sender, DataGrid) Dim tsvm As TimeViewModel = dg.DataContext Dim owo As TimeViewModel.Grid1= DirectCast(dg.SelectedItem, TimeViewModel.Grid1) If owo IsNot Nothing Then Dim ts As Web.Time = owo.Time If ts IsNot Nothing Then tsvm.OpenEditWindow(ts) Else tsvm.NewItem(owo.Employee.WorkOrderID) End If End If End Sub
Merci d'avance
Cordialement
Partager