1

有什么方法可以让两个选项卡项在 wpf 中共享一个数据网格。例如:

<TabControl x:Name="tbMain">
<TabItem x:Name="tab1" />
<TabItem x:Name="tab2" />
</TabControl>

所以我的意思是,tab1 和 tab2 可以有相同的数据网格,只是值不同吗?

4

3 回答 3

2

TabItem是 a ContentControl,您不能同时在两个容器中拥有相同的控件。

但是,您可以坚持使用空的 TabItemsDataGrid以及TabControl. 通过对边框进行一些样式设置,您可以使它看起来像 DataGrid 是同一控件的一部分。然后,您可以DataSource根据当前SelectedItemTabControl.

于 2013-10-10T14:36:20.127 回答
0

我不知道你为什么想要那个,same control cannot be child of different parent同时在 WPF 中。但是,如果您只想定义DataGrid一次并使用它,您可以通过ContentTemplate为您的TabControl喜欢定义 a 来实现:

<DataTemplate x:Key="contentTemplate">
  <Grid>
    <DataGrid ItemsSource="{Binding MyItemsSource}"/>
  </Grid>
</DataTemplate>

<TabControl Width="250" Height="300" 
            ContentTemplate="{StaticResource contentTemplate}">

此处DataTemplate“contentTemplate”将应用于任何TabItem未定义 ContentTemplate 的内容。

这里要记住的是TabItem Content应该设置并且 Content 应该包含 Collection 属性,该属性应该作为ItemsSource您的DataGrid.

于 2013-10-10T14:40:55.190 回答
0

不,您不能在 2 个容器中拥有相同的控件,但为什么不简单地将 2 个控件绑定到同一个数据源呢?然后在您的视图模型中,当当前选定的项目发生变化时,等等......将其镜像到另一个控件。

于 2013-10-10T15:01:17.087 回答