저는 AvalonDock이있는 창을 가지고 있습니다. 시작할 때 LocControllers usercontrols (LocControllersViewModel)로 채워진 하나의 문서가 열립니다.WPF AvalonDock add Documents
이제 LocController usercontrol이 새 문서에서 열리는 LocController에 doubleclicked가있을 때 필요합니다. 첫 번째 문서는 항상 개요이며 LocController usercontrol로 채워져 있으며 두 번 클릭하면 다른 문서가 추가됩니다.
AvalonDock 및 MVVM 샘플을 살펴 보았지만 원하는 동작을 얻는 방법을 알 수 없습니다.
내가 지금까지 알아 낸 것은 문서를 바인딩하기 위해 DocumentsSource 속성을 사용해야한다는 것입니다. 그래서 DocumentSource 속성에 바인딩 할 DocumentViewModels 컬렉션을 만들어야한다고 생각합니다. 그 DocumentViewModel 내가 usercontrols로 작성해야합니다. 첫 번째 문서는 LocController usercontrols의 목록이고, 다른 문서의 경우 다른 usercontrol이 될 수 있습니다.
작은 코드 예제를 제공 할 수있는 사람이 있습니까? 나는 그것이 어려운 생각하지 않습니다,하지만 난 단지 그것을 발견 :(
편집 할 수 없습니다 : 여기에 내 현재 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>
및 문서 창에 세부 사항)?
나는 내 질문을 단순하게하려고 노력할 것이다. overviewControl, detailControl 등과 같은 몇 가지 다른 usercontrol이 있습니다. 이제 첫 번째 DocumentTab에서 시작시 overviewControl을로드하려고합니다. overviewControl에서 항목을 두 번 클릭하면 새 DocumentTab에서 detailControl을 열어야합니다. 이것을 어떻게 할 수 있습니까? 생각하기가 그렇게 힘들지는 않습니다. – PitAttack76