4

Ich habe zwei Threads hier über TDI & C# gesehen. Beide beantworteten nicht wirklich die Fragen, die ich habe ...Tabbed Document Interface in WPF mit nur on-board-Mitteln?

Da TDIs heutzutage ziemlich wie ein Standard sind, kann ich mir kaum vorstellen, dass ich eine spezielle Kontrolle (wie AvalonDock oder SandDock) kaufen muss. Das muss mit eingebautem Tab-Control (?) Irgendwie möglich sein! Ich brauche keine speziellen Features wie Dock- und Drag-Tabitems. Öffnen Sie einfach jedes Formular in einem neuen Tab. Das ist es.

Wie jedes Forms Content-Steuerelemente in Benutzersteuerelemente und auf Anfrage (Schaltfläche, Menü klicken Sie auf ...) fügen Sie eine neue Registerkarte und setzen Sie die entsprechende Benutzersteuerung auf ... etwas ähnliches.

Wie würden Sie es tun? Das kann nicht so kompliziert sein (auch für mich) oder fehlt mir etwas ?!

vielen dank!

+0

gut, was sollte ich als Antwort markieren? Alle 3 funktionieren wahrscheinlich - ich versuche derzeit herauszufinden, was Josh Smith in diesem Artikel von idursun macht. Es ist eine sehr elegante Lösung, aber für mich als Anfänger schwer zu verstehen. Was meine eigentliche Frage am besten beantwortet, ist Josh Gs Post, denke ich, also werde ich sein ... Vielen Dank an euch alle! –

Antwort

5

Es ist nicht so schwer. Es scheint schwierig, weil es viele verschiedene Möglichkeiten gibt, dies zu tun.

Versuchen Sie folgendes:

<TabControl x:Name="documentArea"/> 

Handler für AddForm Taste:

private void AddFormClick(object sender, RoutedEventArgs e) 
{ 
    object form = GetNewForm(); 

    documentArea.Items.Add(form); 
} 

Das ist es. Sie müssen GetNewForm() auf eine von zwei Arten implementieren. Lassen Sie es ein Benutzersteuerelement zurückgeben, das das Formular anzeigt.

ODER noch besser, lassen Sie es Ihr Dokument, das Sie anzeigen möchten, zurückgeben. Verwenden Sie eine DataTemplate, um die Steuerelemente auszuwählen, die für die Anzeige dieses Dokuments verwendet werden sollen. Diese Methode wird schwieriger einzurichten sein.

6

Vielleicht kann Josh Smith's article on MVVM Ihnen eine Idee geben, wie man solche Benutzeroberfläche gestaltet. Das Beispiel, das dort erstellt wird, ist ein Tab-Dokument, so dass Sie es als Startblock verwenden können.

+0

Seien Sie gewarnt ... Josh Smith Artikel ist eine gute Referenz, aber es ist nicht einfach zu verstehen. Sie benötigen eine gute Handhabe für die Databinding von WPF, um dies zusammenzufügen. –

+0

FYI, ich habe für die Verknüpfung mit einer guten Referenz upvoted. –

+0

Danke, in Anbetracht der vorherigen Fragen @ Mad9 Ich denke, er nähert sich MVVM zu implementieren :) – idursun