SetValue der indizierten Eigenschaft in C # mit Reflection

8

Ich habe eine Klasse, die ein

hat %Vor%

als Eigenschaft, und ich versuche, einen Wert innerhalb dieser Eigenschaft einer Instanz dieser Klasse zu ändern. Hier ist der Code, den ich habe und der eine TargetException bekommt:

%Vor%

Wie propertyName erhalten wird, wird oben nicht gezeigt, aber im Falle einer indizierten Eigenschaft beginnt sie ihre Lebensdauer als "IndexedProperty [10]" zum Beispiel.

In den Kommentaren nach dem "else" können Sie andere Dinge sehen, die ich versucht habe, indem ich einige andere stackoverflow-Beiträge und in anderen Foren gelesen habe, wie das geht, aber ich bin bisher gescheitert. Irgendwelche Ideen?

Das Umsetzen der Eigenschaft auf ObservableCollection ist nicht möglich, da dies dynamisch sein soll.

Das Konzept der ganzen Sache besteht darin, ein DataGrid zu haben, das datengebunden ist und Pasten korrekt funktioniert, indem die richtigen Eigenschaften jeder Instanz aktualisiert werden, unabhängig davon, ob die Eigenschaften indiziert sind oder nicht. Nicht indizierte Eigenschaften funktionieren einwandfrei, aber die ObservableCollection-Objekte können nicht verwendet werden.

    
Lefteris Aslanoglou 27.12.2012, 10:04
quelle

2 Antworten

11

Eine Klasse mit ObservableCollection<int> als Eigenschaft hat nicht tatsächlich eine indexierte Eigenschaft im traditionellen Sinne eines Indexers. Es hat nur eine nicht indizierte Eigenschaft, die selbst einen Indexer hat. Also müssen Sie GetValue verwenden, um mit zu beginnen (ohne einen Index anzugeben) und dann den Indexer auf dem Ergebnis holen.

Grundsätzlich müssen Sie Folgendes beachten:

%Vor%

entspricht:

%Vor%

Es sieht so aus, als wären Sie fast dort mit diesem auskommentierten Code:

%Vor%

... aber Sie haben den Index an der falschen Stelle angewendet. Du willst (ich denke - die Frage ist nicht besonders klar):

%Vor%     
Jon Skeet 27.12.2012, 10:11
quelle
0

versuche das, ich bin nicht sicher, ob es funktioniert

%Vor%     
mdcuesta 27.12.2012 10:15
quelle

Tags und Links