【问题标题】:How to use Grid inside Grid (Nested Grid) on Devexpress tools in WPF如何在 WPF 中的 Devexpress 工具上使用 Grid inside Grid(嵌套网格)
【发布时间】:2013-07-01 10:17:21
【问题描述】:

我被困在这里,我如何在 devexpress 网格控件上使用嵌套网格。我研究了很多,但找不到任何好的东西。这是我的

XAML

<dxdo:LayoutPanel Caption="Photography Jobs" AllowClose="False" Name="pnlShotoJobs" GotFocus="pnlShotoJobs_GotFocus">

                <my:GridControl Name="dgPhotoJobs" MouseDoubleClick="dgPhotoJobs_MouseDoubleClick">
                    <my:GridControl.Columns>
                        <my:GridColumn FieldName="JobName" Name="grdColumnJobName" />
                        <my:GridColumn FieldName="JobDate" Name="grdColumnJobDate" />

                    </my:GridControl.Columns>
                 <my:GridControl.View>

                        <my:TableView NavigationStyle="Row" ShowAutoFilterRow="True" ShowGroupPanel="False" MultiSelectMode="Row" Name="JobTableView" MouseUp="JobTableView_MouseUp" AllowEditing="False" Focusable="False">
                        </my:TableView>
                    </my:GridControl.View>
                </my:GridControl>
            </dxdo:LayoutPanel>

设计

当我们点击任何Photography Jobs 时,将在该点击行下方打开一个新网格,其中包含属于点击行的主键 ID 的所有数据。 如果您有任何代码或任何建议,请与我分享。

提前致谢。

【问题讨论】:

    标签: c# wpf-controls devexpress-windows-ui


    【解决方案1】:

    要为您的 GridControl 行显示嵌套网格,请定义 DataRowTemplate。像这样:

            <my:GridControl Name="dgPhotoJobs" MouseDoubleClick="dgPhotoJobs_MouseDoubleClick">
                            <my:GridControl.Columns>
                                <my:GridColumn FieldName="JobName" Name="grdColumnJobName" />
                                <my:GridColumn FieldName="JobDate" Name="grdColumnJobDate" />
    
                            </my:GridControl.Columns>
                         <my:GridControl.View>
    
                                <my:TableView NavigationStyle="Row" ShowAutoFilterRow="True" ShowGroupPanel="False" MultiSelectMode="Row" Name="JobTableView"  AllowEditing="False" Focusable="False">
    
         <dxg:TableView.DataRowTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Vertical">
                                        <core:MeasurePixelSnapper>
                                            <ContentPresenter ContentTemplate="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=DataRowTemplate}}" Name="defaultRowPresenter" />
                                      </core:MeasurePixelSnapper>
                                        <core:DXExpander HorizontalExpand="None" IsExpanded="{Binding Path=(dxg:DataViewBase.IsFocusedRow), RelativeSource={RelativeSource TemplatedParent}}" VerticalExpand="FromTopToBottom">
                                            <Border Background="Cyan" BorderBrush="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=GridDataRowDelimiterBrush}}" BorderThickness="0,1,0,0" TextElement.Foreground="Black">
                                                <Grid MaxHeight="400">
                                                    <dxg:GridControl Grid.Row="1" AutoPopulateColumns="False" ItemsSource="{Binding Path=DataContext.MyCollection, UpdateSourceTrigger=PropertyChanged}" >
                                                        <dxg:GridControl.Columns>
                                                            <dxg:GridColumn  Header="Column1" FieldName="FieldName1" AllowEditing="False"/>
                                                            <dxg:GridColumn  Header="Column2" FieldName="FieldName2" AllowEditing="False">                                                                                                   
                                                        </dxg:GridControl.Columns>                                              
                                                    </dxg:GridControl>
                                                </Grid>
                                            </Border>
                                        </core:DXExpander>
                                    </StackPanel>
                                </DataTemplate>
         </dxg:TableView.DataRowTemplate>
                                </my:TableView>
                            </my:GridControl.View>
                        </my:GridControl>
    

    这是我的 xml 命名空间:

    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"        
    
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
    
    xmlns:core="http://schemas.devexpress.com/winfx/2008/xaml/core"
    

    【讨论】:

    • 你放在core:MeasurePixelSnapper标签里面的代码有什么用。
    猜你喜欢
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多