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
基づいてグリッドの を変更できます。SelectedItem
TabControl
WPFsame control cannot be child of different parent
で同時にそれが必要な理由がわかりません。ただし、一度だけ定義してそれを使用したい場合は、 aをDataGrid
定義することで達成できます。ContentTemplate
TabControl
<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 つのコントロールを同じデータソースにバインドしないのはなぜですか? 次に、ビューモデルで、現在選択されているアイテムが変更されたときなど...それを他のコントロールにミラーリングします。