私はTabControlを使用するWPFアプリケーションを持っています。各TabItemには、データグリッドが含まれます。アプリケーションが起動すると、デフォルトで読み込まれて "Accounts"データグリッドを表示するTabItemが1つあります。このデータグリッドは、アカウント情報のみを表示します。ユーザーは新しいタブを追加することができます。追加される各タブごとに、同じデータグリッドをロードする必要があります。これは、Accounts TabItemに使用されるのと同じデータグリッドではありません。新しいデータグリッドはトランザクションの入力に使用されます。新しく追加した各TabItemで使用できるデータグリッドはどのように定義できますか?最初のTabItemの元のDataGridとは異なりますか?複数のTabItemでデータグリッドを再利用
答えて
あなたが望むものがわかっていれば、最初のtabitem
の場合はデフォルトDataGrid
、それから新しいときはそれぞれtabitem
と同じdatagrid
です。
ここでの問題は、単一のDataGrid
は、2つのTabItems
の一部になることはできません。したがって、最初に行う必要があることは、DataGrid
をスコープ内で宣言して、コードの背後でアクセスできるようにすることです。次に、ユーザーが新しいtabitem
を初めて追加するときは、初めてにtab item
を追加し、content
をDataGrid
に設定します。ユーザーが新しいタブの追加を再度クリックすると、DataGrid
のタブ項目のcontent
を削除し、次ににdatagrid
を追加します。また、selection change
のタブのイベントを処理する必要があります。そのイベントの中では、最後に選択したアイテムからDataGrid
を削除し、新しく選択したアイテムに入れなければなりません。
私はあなたが本当に別のタブ項目のことのために、この同じデータグリッドを必要とするかが、この場合は他の可能な解決策
については、このアプローチを実装する前に、私はMVVMパターンを使用してお勧めしたいと思わないことを確認していません。
メインViewModelにpublic ObservableCollection<object> Items
プロパティを定義させてください。 TabControl
のItemsSource
をItems
にバインドします。
はアカウントTabItem
に表示されなければならないDataGrid
が含まれていAccountsViewModel
ためDataTemplate
を定義します。
は各取引TabItem
に表示されなければならないDataGrid
が含まれていTransactionsViewModel
ためDataTemplate
を定義します。 Account Tab
で
はXAML
DataGrid
に、彼らは実行時に生成されたとして、それがコードからそれらを管理する方が良いでしょう、のは、他のタイプのAccountDataGrid
を言わせて追加します。
他TabItems
によって共有されるDataGrid
オブジェクトを作成し、あなたが例えば、このような何かを行うことができた後のは、SharedDataGrid
を言わせて:TabItem
クラスカスタム定義
public sealed class CustomTabItem : TabItem
{
}
およびそのクラス内のオーバーライド後
protected override void OnInitialized(EventArgs e)
{
//assign shared SharedDataGrid to the content of TabItem
}
この方法では、実際にSharedDataGridに、作成して初期化したTabItem
の内容を割り当てます。
が必要です。
- 1. 複数のUICollectionViewControllersでUICollectionViewを再利用
- 2. Pentaho - 再利用フィールドクエリで複数回
- 3. 複数のスーパークラスとコードの再利用
- 4. パラメータを複数回再利用
- 5. gtk_file_chooser_dialogを複数回再利用
- 6. WHERE節内で複数の変数を再利用する
- 7. Jenkinのパイプラインでステージ間で複数のノードを再利用
- 8. PHPフレームワークで複数のプロジェクト間でコードを再利用
- 9. CQLinqコードを複数のクエリで再利用できますか?
- 10. ReactJSの複数のスクリプトでコンポーネントの定義を再利用
- 11. 再生!フレームワーク:複数のリクエストに対するインスタンスの再利用
- 12. SoapUIの複数のGroovyスクリプトテストステップでgroovyコードを再利用
- 13. reduxの複数のレデューサー間でアクションを再利用
- 14. Ruby on Rails:他の複数のアクション間でコードを再利用
- 15. Androidで複数のアクティビティのビューを再利用
- 16. 複数のプロジェクトでasmx webservicesを再利用
- 17. 複数のプロジェクトでjspカスタムタグを再利用
- 18. 複数のRailsアプリケーション間でRubyコードを再利用する
- 19. iOS5ストーリーボード:複数のUITableViewControllerでカスタムUITableViewCellを再利用
- 20. 複数のninjectバインディングでSqlConnectionを再利用する
- 21. 複数のJenkinsジョブでビルドパラメータを再利用するには?
- 22. 複数のページでcodeigniterフォームを再利用する方法
- 23. 複数のアプリケーションモジュールでproguard-rules.proファイルを再利用する
- 24. 複数のタブページでコントロール(つまりテキストボックス)を再利用する
- 25. 複数のmapper.xmlでMyBatis ResultMapを再利用
- 26. 複数のサービス間でCXF jaxbコンテキストを再利用
- 27. 複数のdivでangularjs棒グラフを再利用する方法
- 28. SAPUI5 - 複数のアプリケーション間で断片を再利用
- 29. SSRS - 複数のデータセットでのテンポラリテーブルの再利用
- 30. 複数の場所でのNSArrayControllerの再利用