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








Répondre avec citation
Partager