Moin,
Ich habe mal eine ganz andere Frage, die mit PHP nichts zu tun hat, daher auch im Offtopic.
Warum hier?
Im Forum, wo ich in C# Fällen sonst frage, erhalte ich seit einigen Monaten keine Antworten mehr auf meine Fragen.
Und bevor ich mich in einem neuen Forum anmelde, dachte ich, ich frage mal hier, da ja hier auch einige .NET Entwickler unterwegs sind.
Die Basis
Ich habe eine WPF DataGrid, in der ich Spaltenfilter eingesetzt habe. Der Aufbau hier mal beispielhaft an der Kundenummer:
Wenn ich jetzt in den Spaltenfilter ( TextBox ) etwas eingebe und mit Enter abschließe, wird die Ansicht korrekt gefiltert.
Das Problem
Sobald eine Selection in der DataGrid aktiv ist, funktioniert das Filtern über Enter nicht mehr, sondern die Selection springt zur nächsten Row.
An sich ein typisches Verhalten, allerdings bekomme ich das gerade nicht umgangen.
Meine Versuche
Hauptsächlich habe ich bisher versucht, die Selection von der DataGrid aufzuheben, bevor ich filtere. Hier mal zusammengefasst, welche Methoden, Eigenschaften ich dazu verwendet habe:
Hat evtl. noch jemand eine Idee?
Falls Infos fehlen, kurz reinrufen, reiche ich nach. Aber die relevanten Infos sollten da sein.
Danke und Gruß
Arne
Ich habe mal eine ganz andere Frage, die mit PHP nichts zu tun hat, daher auch im Offtopic.
Warum hier?
Im Forum, wo ich in C# Fällen sonst frage, erhalte ich seit einigen Monaten keine Antworten mehr auf meine Fragen.
Und bevor ich mich in einem neuen Forum anmelde, dachte ich, ich frage mal hier, da ja hier auch einige .NET Entwickler unterwegs sind.
Die Basis
Ich habe eine WPF DataGrid, in der ich Spaltenfilter eingesetzt habe. Der Aufbau hier mal beispielhaft an der Kundenummer:
Code:
<DataGridTemplateColumn HeaderStyle="{StaticResource ColumnFilterHeaderStyle}"> <DataGridTemplateColumn.Header> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text="Kundennummer" Style="{StaticResource DataGridColumnHeader_TextBlock}"/> <Button Grid.Column="1" Style="{StaticResource DataGridColumnHeader_SortButton}"/> </Grid> <TextBox Grid.Row="1" Name="ColumnFilter_Account" Style="{StaticResource DataGridColumnHeader_TextBoxFilter}" KeyUp="EventHandler_FilterGrid" Tag="Account"/> </Grid> </DataGridTemplateColumn.Header> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Margin="5 2" Text="{Binding Path=Account}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
Das Problem
Sobald eine Selection in der DataGrid aktiv ist, funktioniert das Filtern über Enter nicht mehr, sondern die Selection springt zur nächsten Row.
An sich ein typisches Verhalten, allerdings bekomme ich das gerade nicht umgangen.
Meine Versuche
Hauptsächlich habe ich bisher versucht, die Selection von der DataGrid aufzuheben, bevor ich filtere. Hier mal zusammengefasst, welche Methoden, Eigenschaften ich dazu verwendet habe:
Code:
dgOrder.CancelEdit(); // um den Edit-Mode nach Doppelklick zu unterbrechen dgOrder.CommitEdit(DataGridEditingUnit.Cell, true); // um das Verlassen des CellEditing Mode zu forcieren dgOrder.CommitEdit(DataGridEditingUnit.Row, true); // um das Verlassen des RowEditing Mode zu forcieren dgOrder.SelectedItem = null; // um die Selection zu entfernen ( kein SelectedItems.Clear(), weil SelectionUnit="Row" ) dgOrder.Items.Refresh(); // Verzweiflungstat :-)
Falls Infos fehlen, kurz reinrufen, reiche ich nach. Aber die relevanten Infos sollten da sein.
Danke und Gruß
Arne
Kommentar