两个标签项是否有任何方式在wpf中共享数据网格。 例如:
<TabControl x:Name="tbMain">
<TabItem x:Name="tab1" />
<TabItem x:Name="tab2" />
</TabControl>
所以我的意思是,tab1和tab2可以有相同的数据网格,只是值不同吗?
答案 0 :(得分:2)
TabItem
是ContentControl
,您不能同时在两个容器中拥有相同的控件。
但是你可以坚持使用空的TabItems和DataGrid
以及TabControl
之外的DataSource
。通过边框的一些样式,您可以使它看起来像DataGrid是同一控件的一部分。然后,您可以根据SelectedItem
的当前TabControl
更改网格的{{1}}。
答案 1 :(得分:0)
我不知道你为什么要这样,同时在WPF same control cannot be child of different parent
。但是,如果您只想定义DataGrid
一次并使用它,则可以通过为ContentTemplate
定义TabControl
来实现:
<DataTemplate x:Key="contentTemplate">
<Grid>
<DataGrid ItemsSource="{Binding MyItemsSource}"/>
</Grid>
</DataTemplate>
<TabControl Width="250" Height="300"
ContentTemplate="{StaticResource contentTemplate}">
此处DataTemplate
“contentTemplate”将应用于未定义ContentTemplate的任何TabItem
。
此处需要记住的是,应设置TabItem
Content
,并且内容应包含应作为ItemsSource
的{{1}}的Collection属性。
答案 2 :(得分:0)
不,你不能在2个容器中拥有相同的控件,但为什么不简单地将2个控件绑定到同一个数据源?然后在您的viewmodel中,当前所选项目发生更改时,等等...将镜像反映到另一个控件。