设计XamDataGrid ContextMenus

时间:2013-02-19 23:15:47

标签: wpf infragistics

我有一个可以显示一个XamDataGrid的窗口。但是,我计划有几个XamDataGrids可供选择:

  1. PackagesGrid
  2. ComponentsGrid 等
  3. 每个此类网格都有自己的DataSourceContextMenu我们的想法是在运行时选择一个网格。我想知道如何设计它。

    我可以Styles对应ResourceDictionary中的每个网格,然后在运行时将一个网格应用到我的窗口中的单个XamDataGrid吗?我对WPF不太熟悉......有人可以给我一些指向这个或任何其他方法的指示吗?

    这是我到目前为止所做的:

    ResourceDictionary.xaml

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

    MainWindow.xaml

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

1 个答案:

答案 0 :(得分:0)

将内容控件与ContentTemplateSelector一起使用:

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

ContentControl将是网格内容的占位符,内容将绑定到您将在运行时设置的DataSource。您将在ContentTemplateSelector中实现一些特定的逻辑,以返回特定的DataTemplate(在资源中的某个位置定义),该特定的DataTemplate将包含基于您的内容(dataSource)的特定网格控件。

这样,您可以使用自己的上下文菜单等为每种网格类型创建单独的数据模板,并通过删除内容控件以统一的方式显示它们。内容控件将使用您的ContentTemplateSelector逻辑基于其内容呈现相应的数据模板。