[Debutant]] WPF Datagrid RowEditEditing
Bonjour,
Je n'arrive pas a rentrer dans la fonction RowEditEnding.
Le formulaire
Code:
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> |
Avec 4 Colonnes, dont les 2 checkbox (les autres valeurs sont en lecture seule).
La fonction de remplissage du tableau, qui fonctionne
Code:
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();
} |
et enfin la fonction roweditending (pas finir de coder)
Code:
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 =";
} |
J'arrive a clicker sur les checkbox, je peux changer de ligne, mais jamais la fonction ne se lance.
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