0

1つを表示できる単一のウィンドウがありますXamDataGrid。しかし、いくつかの XamDataGrid から選択できるようにする予定です。

  1. パッケージグリッド
  2. コンポーネントグリッドなど

このような各グリッドには、独自のDataSourceとがありContextMenuます。アイデアは、実行時にグリッドを選択することです。これをどのように設計するかが気になります。

自分Stylesの各グリッドに対応させてResourceDictionary、実行時に Window の単一の XamDataGrid に適用できますか? 私はWPFの経験があまりありません...誰かがこれまたは他のアプローチへのいくつかの指針を教えてもらえますか?

これは私がこれまでに持っているものです:

ResourceDictionary.xaml

<Style x:Key="XamDataGridStyle" TargetType="{x:Type igDP:XamDataGrid}">
</Style>

MainWindow.xaml

<igDP:XamDataGrid Name="xamDataGrid1" Style={StaticResource XamDataGridStyle} />
4

1 に答える 1

0

ContentTemplateSelector でコンテンツ コントロールを使用します。

http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.contenttemplateselector(v=vs.110).aspx

ContentControl はグリッド コンテンツのプレースホルダーになり、コンテンツは実行時に設定する DataSource にバインドされます。ContentTemplateSelector に特定のロジックを実装して、コンテンツ (dataSource) に基づく特定のグリッド コントロールを含む特定の DataTemplate (リソースのどこかに定義されている) を返します。

このようにして、独自のコンテキスト メニューなどを使用してグリッド タイプごとに個別のデータ テンプレートを作成し、コンテンツ コントロールをドロップすることで統一された方法で表示することができます。コンテンツ コントロールは、ContentTemplateSelector ロジックを使用して、そのコンテンツに基づいて適切なデータ テンプレートをレンダリングします。

于 2014-08-22T17:09:00.367 に答える