C# 如何在WPF中的Devexpress工具上使用网格内部网格(嵌套网格)
我被困在这里,如何在devexpress网格控件上使用嵌套网格。我做了很多研究,但没有找到任何好的。这是我的 XAMLC# 如何在WPF中的Devexpress工具上使用网格内部网格(嵌套网格),c#,wpf-controls,devexpress-windows-ui,C#,Wpf Controls,Devexpress Windows Ui,我被困在这里,如何在devexpress网格控件上使用嵌套网格。我做了很多研究,但没有找到任何好的。这是我的 XAML <dxdo:LayoutPanel Caption="Photography Jobs" AllowClose="False" Name="pnlShotoJobs" GotFocus="pnlShotoJobs_GotFocus"> <my:GridControl Name="dgPhotoJobs" MouseDouble
<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>
设计
当我们点击任何摄影作业
时,一个新的网格将在点击的行下方打开,并拥有属于点击行主键ID的所有数据。
如果您有任何代码或任何建议,请与我分享
提前感谢。要为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>
放置在
core:MeasurePixelSnapper
标记中的代码有什么用途。
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"