Jaein
Wenn in deinem KanalPanel keine Zusätzliche Logik in C# Implementiert ist,die sich über Xaml lösen lässt, dann sollte man direkt im DataTemplate alles Layouten, Idealerweise sogar mit einem DataType versehen, so dass man diese Controlvorlage wiederverwenden kann. Letztendlich kommt dasselbe heraus, jedoch sind DataTemplates mit normalen Wpf-Controls viel leichtgewichtiger als ein komplett neues Control.
Vielleicht merkst du dir das so (ich mag solche Auflistungen
)
Habe ich eine Komposition an Controls, die ich auf denselben Daten (ViewModelTyp) benutzen möchte?
--> DataTemplate mit Standard Wpf Controls drin.
Habe ich eine Komposition an Controls, die ich auf verschiedenen (verschiedene ViewModelTypen) benutzen möchte?
--> UserControl mit dependencyProperties
Habe ich Daten, die ich über ein Control darstellen möchte, brauche aber zusätzliches Verhalten (hier gibt es mehrere Lösungen!):
1. Bestehendes Control benutzen und mit Behaviors erweitern
2. CustomControl erstellen (vererbte Klasse) und zusatzlogik in C# implementieren.
Hoffe das hilft dir weiter. Übrigens finde ich es sehr gut, dass du WPF benutzen möchtest wie man es sollte, das machen sehr wenige!