Bonjour,
Je n'arrive pas a rentrer dans la fonction RowEditEnding.
Le formulaire
Avec 4 Colonnes, dont les 2 checkbox (les autres valeurs sont en lecture seule).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <Window x:Class="IntegrationSage.modifarticle" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="modifarticle" Height="514" Width="816"> <Grid> <DataGrid AutoGenerateColumns="False" Height="296" HorizontalAlignment="Left" Margin="12,48,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="477" ItemsSource="{Binding}" FontSize="12" RowEditEnding="dataGrid1_RowEditEnding" CellEditEnding="dataGrid1_CellEditEnding" > <DataGrid.Columns> <DataGridTextColumn Header="Référence" Binding="{Binding ar_ref}" Width="90" IsReadOnly="True"/> <DataGridTextColumn Header="Libellé" Binding="{Binding ar_design}" Width="230" IsReadOnly="True"/> <DataGridTemplateColumn Header="Sommeil"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Path=sommeil, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Header="Publie"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Path=publie}" HorizontalAlignment="Center" VerticalAlignment="Center"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
La fonction de remplissage du tableau, qui fonctionne
et enfin la fonction roweditending (pas finir de coder)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public modifarticle() { InitializeComponent(); conf config = new conf(); config.getConfig(); string query = "select ar_ref, ar_design, ar_sommeil, ar_publie from s_article ";//where ar_publie = 0"; DataTable dnoweb = sql.qsql(config.sql, query); dnoweb.Columns.Add("sommeil", System.Type.GetType("System.Boolean")); dnoweb.Columns.Add("publie", System.Type.GetType("System.Boolean")); foreach (DataRow dr in dnoweb.Rows) { if (dr[2].ToString() == "1") { dr[4] = true; } else { dr[4] = false; } if (dr[3].ToString() == "1") { dr[5] = true; } else { dr[5] = false; } } //DataContext = dnoweb; dataGrid1.ItemsSource = dnoweb.AsDataView(); }
J'arrive a clicker sur les checkbox, je peux changer de ligne, mais jamais la fonction ne se lance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void dataGrid1_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { conf config = new conf(); config.getConfig(); int som = 0; int pub = 0; if (dataGrid1.Columns[3].ToString() == "true") { som = 1; } string query = "update f_article set ar_sommeil = " + ", ar_publie ="; }
Je ne sais pas ou est l'erreur
NB : En fait la procédure ne se lance pas uniquement pour les checkbox, pour les données de type textbox, le programme exécute bien la fonction roweditending.
Merci pour votre aide
Partager