none
Datagrid erkennt keine Änderungen im RowDetailsTemplate RRS feed

  • Frage

  • Hallo,

    ich habe eine Datagrid. Welches Personendaten anzeigen soll. Wenn ich auf eine Zeile klicke möchte ich im RowDetail auch Daten bearbeiten. Mein Problem ist. Wenn ich Daten nur in den Feldern im Rowdetail ändere wird es nicht gespeichert. Wenn ich aber in Datagridcolumn ändere speichert er auch die Änderungen die im Rowdetail waren. Muss ich in den Rowdetails irgendetwas noch eintragen das gekennzeichnet wird hier gab es eine Änderung?

    <DataGrid x:Name="dgPers" Margin="10,10,10,10" Grid.Row="1" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="True">
                <DataGrid.Columns>
                    
                    <DataGridTextColumn Binding="{Binding PNr}" Header="PNr"/>
                    <DataGridTextColumn Binding="{Binding Name}" Header="Name"/>
                    <DataGridTextColumn Binding="{Binding Stadt}" Header="Stadt"/>
                </DataGrid.Columns>
                <DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <Border Margin="5" Padding="3" BorderBrush="Blue" BorderThickness="3" CornerRadius="5">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
    
                                <TextBlock Text="Details:" Margin="10,10,10,10" FontWeight="Bold" Grid.Column="0" Grid.Row="0"/>
    
                                <TextBlock Text="Bemerkung:" Margin="10,10,10,10" Grid.Column="0" Grid.Row="2"/>
                                <TextBox Text="{Binding Bem}" Margin="10,10,10,10" Grid.Column="1" Grid.Row="2"/>
                            </Grid>
                        </Border>
                    </DataTemplate>
                </DataGrid.RowDetailsTemplate>
            </DataGrid>
    private void bSave_Click(object sender, RoutedEventArgs e)
            {
                int retVal;
                retVal = PersDB.SaveChanges();
    
                lUpdate.Content = retVal + " wurden aktualisiert!";
            }

     

    Samstag, 15. Oktober 2016 09:26

Antworten

  • hab es wieder gefunden =) wusste das ich es mal gelesen habe =)

    <TextBox Text="{Binding Bem,UpdateSourceTrigger=PropertyChanged}" Margin="10,10,10,10" Grid.Column="1" Grid.Row="2"/>

    • Als Antwort markiert MietzeTatze Donnerstag, 20. Oktober 2016 14:08
    Donnerstag, 20. Oktober 2016 14:08

Alle Antworten

  • Hi,
    Änderungen in der TextBox im RowDetailsTemplate funktionieren nur, wenn der betreffende Datensatz editiert wurde, d.h., wenn sich eine der Zellen (außerhalb des RowDetailsTemplate) im Edit-Modus befunden hat. ohne dass ein Datensatzwechsel durchgeführt wurde. Wie man das in Deinem konkreten Fall umsetzen kann, kann ich nicht sagen.

    --
    Viele Grüsse
    Peter Fleischer (MVP Reconnect, Partner)
    Meine Homepage mit Tipps und Tricks

    Samstag, 15. Oktober 2016 18:51
  • Ja war eben auch meine Vermutung. Dachte nur das ich irgendwo schon einmal so etwas gelesen habe das das geht
    Sonntag, 16. Oktober 2016 12:47
  • hab es wieder gefunden =) wusste das ich es mal gelesen habe =)

    <TextBox Text="{Binding Bem,UpdateSourceTrigger=PropertyChanged}" Margin="10,10,10,10" Grid.Column="1" Grid.Row="2"/>

    • Als Antwort markiert MietzeTatze Donnerstag, 20. Oktober 2016 14:08
    Donnerstag, 20. Oktober 2016 14:08