WPF AvalonDock Dokumente hinzufügen

Habe ich ein Fenster mit AvalonDock. Auf Start, es ist ein Dokument geöffnet, das gefüllt ist mit LocControllers Benutzersteuerelemente (LocControllersViewModel).

Nun möchte ich, dass wenn es doubleclicked auf eine LocController, dass die LocController usercontrol wird in einem neuen Dokument. Also das erste Dokument ist immer die übersicht, gefüllt mit LocController Benutzersteuerelemente und die anderen Dokumente, die Hinzugefügt werden, nachdem Sie einen Doppelklick.

Habe ich mir angeschaut, die AvalonDock und MVVM-Beispiel, aber ich kann nicht herausfinden, wie man das Verhalten, das ich will.

Was ich festgestellt habe bisher ist, dass ich die DocumentsSource Eigenschaft zum binden der Dokumente. Also ich denke, ich brauche zum erstellen einer Sammlung von DocumentViewModels zu binden, um die DocumentsSource Eigenschaft. Dass DocumentViewModel ich brauche, um mit zu füllen Benutzersteuerelemente. Für das erste Dokument ist eine Liste von LocController Benutzersteuerelemente, für die anderen Dokumente es können auch andere Benutzersteuerelemente.

Kann jemand mir ein kleines code-Beispiel? ich glaube nicht, dass es so schwer ist, aber ich kann es einfach nicht finden 🙁

EDIT: Hier meine aktuelle DockingManager XAML:

    <Window x:Class="AvalonDockMvvmTest.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
                xmlns:AvalonDockMvvmTest="clr-namespace:AvalonDockMvvmTest"
                Title="MainWindow"
                Height="350"
                Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Menu>
            <MenuItem Header="File">
                <MenuItem Header="NewDetail"
                                    Command="{Binding NewCommand}" />
                <MenuItem Header="OpenSelectDetail"
                                    Command="{Binding OpenCommand}" />
            </MenuItem>
        </Menu>

        <xcad:DockingManager x:Name="DockManager"
                                                 Margin="3 0 3 0"
                                                 DocumentsSource="{Binding Documents, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

            <xcad:DockingManager.LayoutItemTemplateSelector>
                <AvalonDockMvvmTest:PanesTemplateSelector>
                    <AvalonDockMvvmTest:PanesTemplateSelector.OverViewTemplate>
                        <DataTemplate DataType="{x:Type AvalonDockMvvmTest:OverviewViewModel}"> <!-- Overview user control -->
                        </DataTemplate>
                    </AvalonDockMvvmTest:PanesTemplateSelector.OverViewTemplate>

                    <AvalonDockMvvmTest:PanesTemplateSelector.DetailTemplate>
                        <DataTemplate DataType="{x:Type AvalonDockMvvmTest:DetailViewModel}"> <!-- Detail user control -->
                        </DataTemplate>
                    </AvalonDockMvvmTest:PanesTemplateSelector.DetailTemplate>

                </AvalonDockMvvmTest:PanesTemplateSelector>
            </xcad:DockingManager.LayoutItemTemplateSelector>
        </xcad:DockingManager>

    </Grid>
</Window>

Also wie lade ich die unterschiedlichen Bedienelemente (übersicht und detail), um das Dokument ausgewählt?

  • Ich werde versuchen, simplefy meine Frage. Ich habe mehrere verschiedene Benutzersteuerelemente, wie ein overviewControl, detailControl, etc. Jetzt will ich zum laden der overviewControl beim start in der ersten DocumentTab. Wenn in der overviewControl ist doubleclicked auf einer Position, die es braucht, um öffnen Sie die detailControl auf eine neue DocumentTab. Wie kann ich dies erreichen? Es kann nicht sein, dass schwer würde ich meinen.
InformationsquelleAutor PitAttack76 | 2014-01-09
Schreibe einen Kommentar