DataGrid 'EditItem' ist für diese Ansicht beim Ziehen mehrerer Objekte nicht zulässig

7

Ich habe ein Datagrid, das Daten wie folgt erhält:

%Vor%

Das Problem ist: Wenn ein Benutzer versucht, eine Zelle zu bearbeiten oder mehrere Zellen zu ziehen, löst die Anwendung eine Ausnahme aus:

  

System.InvalidOperationException wurde nicht behandelt
  Nachricht: 'EditItem' ist für diese Ansicht nicht erlaubt.

Warum ist das? Liegt es an der Art, wie die Daten eingegeben werden? Irgendwelche Ideen?
Danke!

    
amitairos 04.08.2011, 21:53
quelle

5 Antworten

9

Anstelle von struct verwenden Sie stattdessen class .

AKTUALISIERTE ANTWORT: Versuchen Sie, Ihre MyData-Instanzen zu einer Liste hinzuzufügen und diese Liste dann der DataGrid.ItemsSource

zuzuweisen     
AnthonyWJones 04.08.2011, 21:55
quelle
10

Ich habe dieses Problem beim Zuweisen von ItemsSource zu IEnumerable & lt; T & gt;.

Ich habe es durch Konvertieren des IEnumberable & lt; T & gt; zu einer Liste & lt; T & gt; und dann das ItemsSource zuweisen.

Ich bin mir nicht sicher, warum IEnumerable dieses Problem verursacht hat, aber diese Änderung hat es für mich behoben.

    
FUR10N 04.12.2012 09:19
quelle
1

Wenn Sie DataGridCheckBoxColumn verwenden, müssen Sie <Setter Property="IsEditing" Value="true" /> setzen auf Kontrollkästchen-Spalte. Siehe hierzu: Ссылка

    
TotPeRo 03.09.2012 08:40
quelle
1
___ qstnhdr ___ DataGrid 'EditItem' ist für diese Ansicht beim Ziehen mehrerer Objekte nicht zulässig ___ qstntxt ___

Ich habe ein Datagrid, das Daten wie folgt erhält:

%Vor%

Das Problem ist: Wenn ein Benutzer versucht, eine Zelle zu bearbeiten oder mehrere Zellen zu ziehen, löst die Anwendung eine Ausnahme aus:

  

System.InvalidOperationException wurde nicht behandelt
  Nachricht: 'EditItem' ist für diese Ansicht nicht erlaubt.

Warum ist das? Liegt es an der Art, wie die Daten eingegeben werden? Irgendwelche Ideen?
Danke!

    
___ answer12244526 ___

Wenn Sie DataGridCheckBoxColumn verwenden, müssen Sie %code% setzen auf Kontrollkästchen-Spalte. Siehe hierzu: Ссылка

    
___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ antwort22387002 ___

Diese Antwort ist nicht meine eigene, nur das von AnthonyWJones vorgeschlagene Arbeitscodebeispiel.

%Vor%     
___ answer13699537 ___

Ich habe dieses Problem beim Zuweisen von ItemsSource zu IEnumerable & lt; T & gt;.

Ich habe es durch Konvertieren des IEnumberable & lt; T & gt; zu einer Liste & lt; T & gt; und dann das ItemsSource zuweisen.

Ich bin mir nicht sicher, warum IEnumerable dieses Problem verursacht hat, aber diese Änderung hat es für mich behoben.

    
___ tag123datagrid ___ Ein grafisches Element der Benutzeroberfläche, das eine tabellarische Ansicht der Daten darstellt. ___ answer48809889 ___

Für meinen Fall

%Vor%

gibt ein

zurück %Vor%

nicht ein

%Vor%

also, wenn ich einen Style für meine Event-Setter zu einer Checkbox-Spalte in meinem DataGrid zuweisen

%Vor%

ServiceActiveChecked wird nie aufgerufen und ich habe

%Vor%

und für alle anderen, die Kontrollkästchen in Datagrid-Spalten verwenden, verwende ich ein Spaltenobjekt mit meinen Spaltendaten in diesem Konstruktor, um das Datenraster hinzuzufügen, das ich zum Hinzufügen des obigen Stils verwende.

%Vor%     
___ tag123invalidoperationexception ___ Die Ausnahme, die ausgelöst wird, wenn ein Methodenaufruf für den aktuellen Status des Objekts ungültig ist. ___ answer6949044 ___

Anstelle von %code% verwenden Sie stattdessen %code% .

AKTUALISIERTE ANTWORT: Versuchen Sie, Ihre MyData-Instanzen zu einer Liste hinzuzufügen und diese Liste dann der DataGrid.ItemsSource

zuzuweisen     
___
Zerato 13.03.2014 17:56
quelle
0

Für meinen Fall

%Vor%

gibt ein

zurück %Vor%

nicht ein

%Vor%

also, wenn ich einen Style für meine Event-Setter zu einer Checkbox-Spalte in meinem DataGrid zuweisen

%Vor%

ServiceActiveChecked wird nie aufgerufen und ich habe

%Vor%

und für alle anderen, die Kontrollkästchen in Datagrid-Spalten verwenden, verwende ich ein Spaltenobjekt mit meinen Spaltendaten in diesem Konstruktor, um das Datenraster hinzuzufügen, das ich zum Hinzufügen des obigen Stils verwende.

%Vor%     
Stephen Himes 15.02.2018 14:44
quelle