Benutzerdefinierte vs Benutzerkontrolle
Habe ich gelesen, einige Erklärungen über den Unterschied zwischen Benutzer-und Benutzerdefinierte Steuerelemente, zum Beispiel diese:
http://www.wpftutorial.net/CustomVsUserControl.html
Will ich schaffen, zum Beispiel, eine einfache Zusammensetzung einer datagrid mit 2 comboboxes, die verantwortlich zum ändern der Werte aus dem datagrid-Elemente. Ich möchte eine spezielle Steuerung dafür, weil ich werde es verwenden eine Menge Zeit. Ich würde gerne implementieren die Logik, die hinter und dann in der xaml-Aufruf-ich geben nur noch die itemsSource.
Für dieses Beispiel soll ich einen Benutzer erstellen oder Custom control? Da ich Eigenschaften und Logik, sollte ich ein viewmodel für diese Steuerung?
EDIT: kennst du ein paar Artikel mit klaren konzeptionellen Trennung zwischen diesen 2 Optionen?
InformationsquelleAutor der Frage Louro | 2012-06-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahl ist nicht nur zwischen Benutzer-Steuerung und kundenspezifische Kontrolle, aber unter user-control custom control, customizing, Steuern, template, Anpassung von data-template, header-template (für die Sammlung basierte Steuerungen), angefügte Eigenschaften.
Finden Sie Control-Authoring-übersicht
Gehe ich von folgender Reihenfolge der Berücksichtigung
Angefügte Eigenschaften : Wenn Funktionalität erreicht werden kann, verwende ich die angefügte Eigenschaften. Beispiel, Numerischen Textfeld.
Control-Vorlage : Wenn Anforderung erfüllt werden kann durch anpassen des control template, nutze ich diese. Beispiel, kreisförmige Fortschrittsbalken.
Custom control: Wenn die Vorlage es nicht tun, ich benutze custom control. Zur Verfügung gestellt muss ich anpassen/erweitern bereits vorhanden Kontrolle. Beispiel die Bereitstellung von Sortier -, Filter basierend auf header-Zeile in GridView (GridView ist in metro-apps verwendet, um nur das Beispiel zu veranschaulichen)
User control: am Wenigsten bevorzugten. Nur bei der Zusammensetzung erforderlich ist, und ich bin nicht in der Lage, es zu tun mit custom control. Wie in deinem Beispiel, 2 Combobox und datagrid-1. Benutzer-Steuerelemente bieten keine nahtlose lookless feature, das genutzt werden kann, durch custom control oder control-Vorlage.
InformationsquelleAutor der Antwort Tilak
Haben Sie schon einige gute Antworten, die erklären, die Unterschiede aber auch verstehen, dass benutzerdefinierte Steuerelemente und
UserControls
haben verschiedene Zwecke:Einen
UserControl
Regel encapusulates eine Art von composite-Verhalten. Wenn Sie eine Anwendung haben, muss zum Bearbeiten von Kontaktinformationen in vielen Orten, zum Beispiel, könnten Sie erstellen ein benutzerdefiniertes Steuerelement, die Beschriftungen und text-Felder für alle Daten angelegt mit einer senden-Schaltfläche, über die für Sie relevanten code und Wiederverwendung dieses Steuerelement in Ihrer Anwendung.Einem benutzerdefinierten Steuerelement ist ein Steuerelement, das abgeleitet ist von einem der
WPF
control-Klassen (E. G.Control
,ContentControl
etc.) und erzeugt werden, code.Diese Steuern haben in der Regel ein zusammenhängendes Zweck (denke
TextBox
,ComboBox
,Label
), anstatt gemeinsam zu handeln, als ein ganzes (obwohl dies nicht der Fall sein).UserControl
's sind in der Regel einfacher für Menschen, die nicht vertraut mitWPF
wie Sie optisch gestaltet.Mein Vorschlag wäre, zunächst mit einer
UserControl
. Sie können jederzeit umgestalten, diese in ein benutzerdefiniertes Steuerelement zu einem späteren Zeitpunkt werden Sie mehr vertraut mit der ArtWPF
funktioniert. Erstellen Sie das Steuerelement als ein benutzerdefiniertes Steuerelement wird erfordern KenntnisseControlTemplate
s undStyle
s wie Sie benötigen, um Ihre eigenen zu definieren look and feel für Ihre Kontrolle.Wenn alles gesagt und getan ist, solange die Steuerung verhält sich korrekt, es ist egal, welchen Ansatz Sie verwenden.
Sehen diese post ein Beispiel für die zwei Ansätze für das gleiche problem. Die post Autor wollte einer Kontrolle vorlegen können modale Inhalte vor der primäre Inhalt. Die post Autor eigentlich beantwortet seine eigene Frage, indem Sie die Umsetzung von it als
UserControl
. Ich habe eine Antwort auf die post schafft das Steuerelement ein benutzerdefiniertes Steuerelement, aber beide haben die gleiche heilende Wirkung.InformationsquelleAutor der Antwort Benjamin Gale
Die beste Erklärung ist in der msdn. CustomControl ist mehr einen "virtuellen" Namen, es gibt keine Klasse namens "CustomControl" in WPF, statt dessen bedeutete die Schaffung einer neuen Klasse Gebäude auf der Spitze eines WPF-Steuerelement-Klassen, wie
Control
,ItemsControl
und noch mehr spezifische Kontrollen wieTextBox
oderButton
.Für Ihren konkreten Fall eine UserControl sollte genug sein, erstellen ein CustomControl ist etwas, das kann leicht vermieden werden. Während es ist nicht eine schlechte Sache, eine Menge Leute, vor allem Anfänger im Bereich WPF aus WinForms neigen Unterklasse mehr notwendig.
InformationsquelleAutor der Antwort dowhilefor
Wenn Sie einen Blick-Modell und Sie möchten eine Ansicht erstellen, für die es mit den User-Control.
Wenn Sie eine autonomen Kontrolle, für die kein bestimmter view-Modell
Sie müssen wahrscheinlich ein custom-control.
Wenn Sie feststellen, dass die Funktionalität, die Sie benötigen, als ganzes, existieren bereits in andere Steuerelemente, die Sie brauchen, um zu überschreiben einer vorhandenen control-Vorlage.
(ich.e: für eine Diamant-förmige Taste - Sie müssen überschreiben Sie die Taste control-Vorlage.)
Bezüglich attached-properties und attached-Verhaltensweisen, diese sind nützlich, wenn Sie haben die Kontrolle, die Sie wollen, zu erweitern, mit mehr Eigenschaften, oder Sie wollen es sich zu Verhalten, etwas anders als Ihre Standard-Verhalten.
In der mitgelieferten Fall von der Zusammensetzung der OP beschrieben, kann erreicht werden, entweder mit Benutzer-Steuerelement oder benutzerdefiniertes Steuerelement. Ich würde es vorziehen, eine benutzerdefinierte Steuerelement, da gibt es keine spezielle Ansicht " - Modell zur Verfügung gestellt, der "Eingang" ist nur eine Eigenschaft gebunden an ein Element Sammlung.
Oh, und ich bin leider etwas zu spät.
InformationsquelleAutor der Antwort G.Y
(Sorry für die Buchung als Antwort nicht kommentieren.
Wenn Sie es nützlich finden, fühlen sich frei, fügen Sie dies als Kommentar zB. Benjamins Antwort ?)
Können Sie ganz einfach die optische Gestaltung
CustomControl
.Erstellen Sie neue
UserControl
(oder Fenster). Erstellen Sie die xaml-Struktur visuell im Designer. Copy-paste Körper der entstehende xaml-innenControlTemplate
Ihrer neuenCustomControl
(ZB. in generic theme-Datei).Wenn ich mich Recht erinnere, sind Sie auch in der Lage, visuell design CustomControl-Vorlage direkt in die Mischung.
Natürlich können Sie auch Beispiel die wip-CustomControl in einem Fenster und das Fenster der Designer-Ansicht als neues Gremium über die Kontrolle der xaml-Ansicht im VisualStudio.
Einige xaml-bindings von Stil-Vorlage erscheinen nicht in der Designer-wie diese aber, bis ich wieder aufzubauen.
[ Imho GUI ist hauptsächlich eine visuelle Sache und sollte nicht und muss nicht erstellt werden, im in-code. ]
InformationsquelleAutor der Antwort Riva
Wenn das ist irgendwie das erste mal Gebäude steuert, empfehle ich das UserControl als VS können Sie den Entwurf der Benutzeroberfläche leichter. Benutzerdefinierte Steuerelemente sind leistungsfähiger, aber Sie haben, um KLAR zu trennen die Kontrolle der Logik der von seiner Oberfläche, und dies erfordert ein bisschen mehr Vorbereitung.
InformationsquelleAutor der Antwort NestorArturo
Sowie zum erstellen eines Benutzerdefinierten Steuerelements, die Sie brauchen, um es zu implementieren als ein User control. Ihre eigenen Benutzer-Steuerelement aufgerufen wird, ein Custom control. Es ist ziemlich einfach.
UserControl ist die Basis-Klasse mit dem benutzerdefinierten Inhalt :
Ich don ' T völlig einverstanden mit dem Artikel. Aber in Ihrem Fall brauchen Sie ein Benutzersteuerelement, das Sie wieder verwenden können letztere in Ihrer UI.
InformationsquelleAutor der Antwort MBen
Können Sie sich immer darauf verlassen, selbsterklärend, microsoft-style-Beschreibungen:
User Control (WPF) - Windows Presentation Foundation-user-Kontrolle
Custom Control (WPF) - Windows Presentation Foundation custom control
InformationsquelleAutor der Antwort Ondřej