Hallo zusammen,
mein RowEditEnding Event wird nicht ausgelöst, wenn sich nur eine Zeile im Steuerelement befindet, es sei denn man klickt auf ein anderes Steuerelement dann merkt das DataGrid wohl das es keinen Focus mehr hat, selbst beim TabItem Wechsel wird es nicht ausgelöst.
Hat damit jemand schon Erfahrungen sammeln können?
<DataGrid ItemsSource="{Binding DataGridExtraTubesItemsSource, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding DataGridExtraTubesSelectedItem, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource BaseDataGrid}"
RowStyle="{StaticResource BaseDataGridRow}"
x:Name="DataGridExtraTubes">
<i:Interaction.Triggers>
<i:EventTrigger EventName="RowEditEnding">
<i:InvokeCommandAction Command="{Binding DataGridExtraTubesRowEditEndingCommand}" CommandParameter="{Binding ElementName=DataGridExtraTubes, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
Grüße
Wann wird es denn ausgelöst, wenn du mehr als eine Zeile hast?
Normalerweise sollte das Verhalten dann auch so sein, wenn du z.B. den Tab verlässt.
Klickst du bei mehreren Zeilen in eine andere Zeile?
Wenn du zwei Zeilen hast und zwischen der ersten und zweiten wechselst wird es ausgelöst.
Existiert nur eine Zeile und ich wechsel den Tab passiert nichts, klick ich aber auf ein anderes Control wird es wieder ausgelöst.
Ja, d.h. wenn du bei zwei oder mehr Zeilen nicht die Zeile wechselst und den Tab verlässt, wird es auch nicht ausgelöst, richtig?
Das Problem besteht also auch bei mehreren Zeilen, wenn die Zeile nicht den Fokus verliert passiert nichts.
Hab es jetzt über das MouseLeave Event gesteuert, gefällt mir zwar nicht, aber mir fällt auch nichts besseres ein
Was hattest du denn wirklich vor?
Denn editieren von Daten in einem DataGrid ist definitiv die falsche herangehensweise.
Warum verwendest du eigentlich nicht MVVM? Dann kannst du doch den Command aufrufen wenn sich ein Setter ändert.
Weil?
Weil 30 Jahre SW Entwicklung gezeigt haben das es die falsche Herangehensweise ist.
Und beim verlassen der Zeile automatisch speichern wird dir auch über kurz oder lang auf die Füße fallen.
Warum verwendest du eigentlich nicht MVVM? Dann kannst du doch den Command aufrufen wenn sich ein Setter ändert.
Ich verwende MVVM, aber es gibt ja ein passendes Event zu der Geschichte deswegen fand ich es auch angebracht das zu benutzen. Aber ja man könnte es auch über den Setter machen nur wird dann ja jeder Änderung geschrieben, mir reicht es ja wenn die letzte Auswahl vom Benutzer gespeichert wird.
Weil 30 Jahre SW Entwicklung gezeigt haben das es die falsche Herangehensweise ist.
Und beim verlassen der Zeile automatisch speichern wird dir auch über kurz oder lang auf die Füße fallen.
Und wie sieht die richtige Herangehensweise aus?
ListView/DataGrid zur Anzeige und Auswahl und dann einen DetailView zur Eingabe.
Zum speichern einen Button, dann kann man auch jederzeit ein Undo machen.