WPF (MVVM), Wie ein Benutzersteuerelement hinzufügen zu einer Ansicht aus einer Sammlung in einem ViewModel
Ich will wissen, wie Sie eine Benutzer-Steuerelement in einem Fenster, aus einer Sammlung. Derzeit bin ich das hinzufügen meiner Kontrolle aus meine Ordner Sichten, um eine grid-Zelle so gerne.
<views:MyControl Grid.Column="0" Grid.Row="0" Margin="10"/>
Ich habe eine ObservableCollection-in meinen Augen-Modells und Sie speichert eine Sammlung von Benutzer-Steuerelemente. Aus meiner Sicht möchte ich eine Kontrolle aus, die Sammlung und legen Sie es in die Zelle mein raster. Wie kann ich ein Steuerelement hinzufügen, das raster, wie ich es getan habe vor, aber aus meiner Sammlung?
e.g etwas entlang der Linien von {Binding Path kontrolliert.[1]
- "Ich habe eine ObservableCollection-in meinen Augen-Modells und Sie speichert eine Sammlung von Benutzer-Steuerelemente." das ist nicht MVVM.
- Ich habe eine Menge von verschiedenen Bedienelemente, der Benutzer kann wählen Sie zum hinzufügen auf den Bildschirm. Das viewmodel hat eine Auflistung aller verfügbaren Steuerelemente in der Anwendung und auch eine Sammlung von 4 Kontrollen, die der Benutzer ausgewählt, um Sie in einer Ansicht. Die Aussicht gebunden ist, die auf die Sammlung von ausgewählten Steuerelementen und muss nur die 4 gewählt wurden. Was ist mit diesem ist nicht zu MVVM? Vielleicht sollte ich klarstellen das in meiner Frage.
- Weil dein ViewModel Blick in es. Eine Reine ViewModel gesetzt werden könnten, in einem Projekt, das nicht auf irgendwelche UI-Baugruppen, wie PresentationFramework. Es sollten nur Modelle enthalten, und wissen nichts von der UI.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn etwas enthält eine Sammlung von Benutzer-Steuerelementen, es ist nicht ein Blick-Modell.
Einen Blick Modell, das sichert eine Ansicht, die zeigt, andere Steuerelemente enthalten soll eine Sammlung der Modelle für diese Steuerelemente. Sie sollten binden Sie das
ItemsSource
einerItemsControl
zu der Sammlung Eigentum, und verwenden Sie dann template-matching-und Daten-Vorlagen zu erstellen, die Steuerelemente.So, nehmen wir an, Sie möchten die Anzeige einer Sammlung von
FooView
undBarView
Benutzer Steuerelemente in Ihre Fenster. Erstellen Sie einFooViewModel
Klasse und einBarViewModel
Klasse, und erstellen Sie eine Daten-Vorlage für jede in der Ressource-Wörterbuch ein, z.B.:Sobald dies geschehen ist, jede
ItemsControl
derenItemsSource
ist gebunden an eine Sammlung dieser Modelle anzeigen finden Sie die Vorlagen, erstellen Sie die Steuerelemente, und binden Sie diese an die view models.Wenn die
ItemsControl
Sie verwenden eineGrid
vermutlich haben Sie einen weiteren Schritt. AlleItemsControl
erzeugt ein container-Element (im Falle vonGrid
, es ist einContentPresenter
) zu halten, die Aussicht auf es ist die Anzeige, in einemGrid
Sie wahrscheinlich benötigen, um ordnen Sie dieGrid.Row
undGrid.Column
in diesem container. Unter der Annahme, dass Ihre Modelle habenRow
undColumn
Eigenschaften, die Art und Weise, dies zu tun ist: