Reputation: 145
I got the following code. If I now try to type in a comma or a dot into my "EK-Preis" column, which is a double, it doesnt work. I just can write numbers or letters. If I type in a letter, the cell gets a red contour, which is perfect. Any ideas?
Here's my code:
private void dgFolien_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
DataRowView drv = e.Row.DataContext as DataRowView;
try
{
if (drv != null)
{
using (OleDbConnection conn = new OleDbConnection(connection.ConnectionString))
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.Parameters.Add(new OleDbParameter("@var1", drv["Hersteller"].ToString()));
cmd.Parameters.Add(new OleDbParameter("@var2", drv["Serie"].ToString()));
cmd.Parameters.Add(new OleDbParameter("@var3", drv["Farbe"].ToString()));
cmd.Parameters.Add(new OleDbParameter("@var4", drv["EK-Preis"].ToString()));
cmd.Parameters.Add(new OleDbParameter("@var5", drv["FolienID"].ToString()));
cmd.CommandText = "UPDATE Folien SET Hersteller=@var1, Serie=@var2, Farbe=@var3, [EK-Preis] = @var4 WHERE FolienID=@var5";
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("Error " + ex);
}
}
And here my XAML:
<DataGrid x:Name="dgFolien" AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Left"
Height="268" Margin="10,138,0,0" VerticalAlignment="Top" Width="489" ColumnWidth="*" RowEditEnding="dgFolien_RowEditEnding">
<DataGrid.Columns>
<DataGridTextColumn Header="Hersteller" Binding="{Binding Hersteller, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Serie" Binding="{Binding Serie, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Farbe" Binding="{Binding Farbe, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="EK-Preis" Binding="{Binding EK-Preis, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
</DataGrid>
Thank you!
Upvotes: 1
Views: 1436
Reputation: 954
UpdateSourceTrigger=PropertyChanged
forces to process text on every keystroke.
Change it to UpdateSourceTrigger
to LostFocus
. For example if your value is 12.45, the moment '.'
is detected it expects 45 to be a property binded to 12.
Upvotes: 4