Ich verwende das Eigenschaftsraster von WPF Toolkit CE. Beim Hinzufügen eines Objekts zu einer Sammlung zeigt das geöffnete Dialogfeld eine Auswahlliste, um den neuen Typ auszuwählen, der hinzugefügt werden soll. In der Dokumentation, die ich für NewItemTypesAttribute
lesen: Dieses Attribut kann die Auflistungseigenschaften (d. H. IList) des ausgewählten Objekts dekorieren, um die Typen zu steuern, die im CollectionControl instanziiert werden können.WPF-Toolkit Community Edition-Eigenschaftsraster: Neue Elementtypen im Auflistungs-Editor
Aber ich kann es nicht funktionieren. Hier sind die letzte Variante habe ich versucht:
namespace TestPropertyGrid
{
/// <summary>
/// Interaktionslogik für MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyObject myObj = new MyObject();
this.PGrid.SelectedObject = new MyObject();
}
}
public class MyObject
{
[NewItemTypes(typeof(MyBaseObj), typeof(MyObj1))]
[Editor(typeof(CollectionEditor), typeof(CollectionEditor))]
public ArrayList ListOfObjects { get; set; } = new ArrayList();
}
public class MyBaseObj
{
}
public class MyObj1
{
}
}
In diesem Fall wird die „select type“ -Liste leer ist.
Ich versuche eine List<object>
anstelle von ArrayList
zu verwenden, aber die Liste enthält nur den Typ Objekt.
initialy wollte ich ein List<MyBaseObj>
(würde eine abstrakte Klasse sein) und Objekte vom Typ MyObj1
bzw. MyObj2
hinzufügen, die beide von MyBaseObj
erben würden. Das gleiche wie in der Dokumentation Beispiel:
Ich hoffe, ich könnte mein Problem klar erklären und jemand könnte helfen. Vielen Dank.