wpfで2つのタブ項目がデータグリッドを共有する方法はありますか. 例:
<TabControl x:Name="tbMain">
<TabItem x:Name="tab1" />
<TabItem x:Name="tab2" />
</TabControl>
だから私が意味するのは、タブ1とタブ2は同じデータグリッドを持つことができますか?値が異なるだけですか?
wpfで2つのタブ項目がデータグリッドを共有する方法はありますか. 例:
<TabControl x:Name="tbMain">
<TabItem x:Name="tab1" />
<TabItem x:Name="tab2" />
</TabControl>
だから私が意味するのは、タブ1とタブ2は同じデータグリッドを持つことができますか?値が異なるだけですか?
TabItemは でありContentControl、一度に 2 つのコンテナーで同じコントロールを使用することはできません。
DataGridただし、空の TabItems と、その下および外側に固執することができますTabControl。ボーダーのスタイルを少し変更することで、DataGrid が同じコントロールの一部であるように見せることができます。その後、 の現在の にDataSource基づいてグリッドの を変更できます。SelectedItemTabControl
WPFsame control cannot be child of different parentで同時にそれが必要な理由がわかりません。ただし、一度だけ定義してそれを使用したい場合は、 aをDataGrid定義することで達成できます。ContentTemplateTabControl
<DataTemplate x:Key="contentTemplate">
<Grid>
<DataGrid ItemsSource="{Binding MyItemsSource}"/>
</Grid>
</DataTemplate>
<TabControl Width="250" Height="300"
ContentTemplate="{StaticResource contentTemplate}">
ここで「contentTemplate」は、ContentTemplate が定義されていないものDataTemplateに適用されます。TabItem
ここで覚えてTabItem Contentおくべきことは、 を設定する必要があり、 Content には、 として機能する Collection プロパティが含まれている必要があるということItemsSourceですDataGrid。
いいえ、2 つのコンテナーで同じコントロールを使用することはできませんが、単純に 2 つのコントロールを同じデータソースにバインドしないのはなぜですか? 次に、ビューモデルで、現在選択されているアイテムが変更されたときなど...それを他のコントロールにミラーリングします。