Autor Beitrag
funcry
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Do 06.08.09 15:10 
Es geht mir mit der Frage vorallem um sauberes Design.

Meine Anwendung besteht aus einem Window mit TabControl. Dort werden dynamisch TabItems eingebunden. Die TabItems enthalten ein Paar Steuerelemente. Daher habe ich derzeit entweder eine Page, ein UserControl oder ein Window definiert, welches ein TabControl mit TabItem und den Steuerelementen enthält.

In anderen Worten:
Ich habe ein (Main-) Window mit TabControl.
Jetzt erstelle ich ein von mir erstelltes UserControl, Page oder Window welches ein TabControl mit einem TabItem und ein paar Steuerlementen enthält.
Dieses TabItem schnappe ich mir und füge es meinem TabControl im Main-Window hinzu.


Jetzt bin ich am Überlegen und frage, welche Technik ist die dafür vorgesehene ?
Funktionieren tut es sowohl mit einer Page, einem Window (mit Einschränkungen) sowie einem UserControl.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 06.08.09 18:13 
Du erzeugst also ein Window/Page, nur um daraus ein TabItem herauszureißen und in das "echte" TabControl einzufügen? Bin mir jetzt nicht sicher, was du damit erreichen willst :gruebel: .
Der richtige Weg geht jedenfalls über ein DataTemplate, das die Elemente entweder direkt oder gekapselt in einem UserControl enthält.

_________________
>λ=
funcry Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 110
Erhaltene Danke: 1

Win7 64, XP 32
C# (VS 2010 EE), Delphi (TD 2006 Win32)
BeitragVerfasst: Do 06.08.09 20:55 
Danke für die Antwort!

Der Grund warum ich das brauche ist, auf den TabItems finden teils sehr lange Berechnungen statt, eine Tabelle ist drauf, Diagramme können angezeigt werden etc . .Und wenn es dem Anwender passt macht er sich ein neues TabItem mit neuen Einstellungen und kann dort neue Berechnungen durchführen. Zudem kann am Ende der Berechnungen das TabItem selbst ein neues TabItem erzeugen mit geänderten Einstellungen und automatisch mit neuen Berechnungen fortfahren. Allerdings ist der Code-Behind dieser TabItems auch relativ umfangreich - im Prinzip sind 90% der Anwendung dort drauf, inklusive der eingebundenen Klassen und Funktionen. Zudem ruft das TabItem bei Bedarf neue Windows auf. Funktioniert soweit wie geplant. In früheren Versionen habe ich mit MDI-Fenstern gearbeitet, was aber weniger elegant war meiner Meinung nach.