이상적으로 MVVM 디자인 패턴을 사용하면되지만,이 작업을 간단하고 쉽게 할 수있는 방법을 찾으려면 다음을 시도해보십시오. UserControls를 다른 하위 양식으로 만듭니다. 그것들을 프레임에 던지십시오. 그리드도 사용할 수 있지만 필요하면 프레임을 사용하여 네비게이션 (앞으로, 뒤로)을 사용할 수 있습니다.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Right"/>
<!--TreeView Code Here-->
<TreeView x:Name="treeView" SelectedItemChanged="TreeView_SelectedItemChanged">
<TreeViewItem Header="Devices" IsExpanded="True">
<TreeViewItem Header="Device 1" Tag="UserControl1.xaml"/>
<TreeViewItem Header="Device 2" Tag="UserControl2.xaml"/>
<TreeViewItem Header="Device 3" Tag="UserControl3.xaml"/>
</TreeViewItem>
<TreeViewItem Header="Users" IsExpanded="True">
<TreeViewItem Header="Add" Tag="UserControl4.xaml"/>
<TreeViewItem Header="Edit/Delete" Tag="UserControl5.xaml"/>
</TreeViewItem>
</TreeView>
<!--Frame to hold your subform (UserControl)-->
<Frame x:Name="SubForm" Grid.Column="2" NavigationUIVisibility="Hidden"/>
</Grid>
코드 숨김 :
private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem item = (TreeViewItem)treeView.SelectedItem;
SubForm.Source = new Uri(item.Tag.ToString(), UriKind.RelativeOrAbsolute);
}
답변 해 주셔서 감사합니다. 이것은 올바른 방향으로 나를 가리키며 몇 가지 옵션을 제공합니다. MVVM 디자인 패턴을 살펴볼 것입니다. - 건배! – Cam