我有一个tab-control
三个选项卡项目。每个标签项目都有一个datagrid
放置在它上面。 ,所有这三个数据网格在它们各自的选项卡上都是Master-Detail-SubDetail形式。如何在WPF中从一个tabitem移动到另一个tabitem
当用户选择主数据网格上的一行时,如何从第一个选项卡项目移动到第二个选项卡项目?我使用ADO.Net
实体框架创建了一个模型来创建此主 - 细节视图。
XAML布局
<TabControl Height="270" HorizontalAlignment="Left" Margin="16,23,0,0" Name="tabControl1" VerticalAlignment="Top" Width="462">
<TabItem Header="Person" Name="tabItem1">
<Grid DataContext="{StaticResource peopleViewSource}">
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="166" SelectedItem="{Binding personDetails}"
HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="64,23,0,0" Name="peopleDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="289">
<DataGrid.Columns>
<DataGridTextColumn x:Name="personIDColumn" Binding="{Binding Path=personID}" Header="person ID" Width="SizeToHeader" />
<DataGridTextColumn x:Name="firstNameColumn" Binding="{Binding Path=firstName}" Header="first Name" Width="SizeToHeader" />
<DataGridTextColumn x:Name="lastNameColumn" Binding="{Binding Path=lastName}" Header="last Name" Width="SizeToHeader" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="Person Details" Name="tabItem2">
<Grid DataContext="{StaticResource peoplepersonDetailsViewSource}">
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="120" SelectedItem="{Binding personDetails.personStatus}"
HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="82,18,0,0" Name="personDetailsDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="172">
<DataGrid.Columns>
<DataGridTextColumn x:Name="detailIDColumn" Binding="{Binding Path=detailID}" Header="detail ID" Width="SizeToHeader" />
<DataGridTextColumn x:Name="positionColumn" Binding="{Binding Path=position}" Header="position" Width="SizeToHeader" />
<DataGridTextColumn x:Name="personIDColumn1" Binding="{Binding Path=personID}" Header="person ID" Width="SizeToHeader" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
<TabItem Header="Person Status" Name="tabItem3">
<Grid DataContext="{StaticResource peoplepersonDetailspersonStatusViewSource}">
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="143" HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="91,23,0,0" Name="personStatusDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="185">
<DataGrid.Columns>
<DataGridTextColumn x:Name="detailIDColumn1" Binding="{Binding Path=detailID}" Header="detail ID" Width="SizeToHeader" />
<DataGridTextColumn x:Name="positionColumn1" Binding="{Binding Path=position}" Header="position" Width="SizeToHeader" />
<DataGridTextColumn x:Name="statussColumn" Binding="{Binding Path=statuss}" Header="statuss" Width="SizeToHeader" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
</TabControl>
我感觉到一个完全缺乏MVVM这里... – 2013-03-04 21:45:32
看看[这里](http://stackoverflow.com/questions/15209870/dynamically-updating-tabcontrol-content-at-runtime/15210593# 15210593)对TabControl真的是什么的解释... – 2013-03-04 21:46:38
没有没有MVVM的WPF ...如果你尝试以WinForms的方式使用WPF,你会遭受很大的损失。 – 2013-03-04 21:47:07