gpt4 book ai didi

c# - 如何在 WPF 中的 Devexpress 工具上使用 Grid inside Grid(嵌套网格)

转载 作者:行者123 更新时间:2023-11-30 22:16:25 25 4
gpt4 key购买 nike

我被困在这里,我如何在 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>

设计

enter image description here

当我们点击任何 Photography Jobs 时,一个新的网格将在被点击的行下方打开,并拥有属于被点击行的主键 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>

这是我的 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"

关于c# - 如何在 WPF 中的 Devexpress 工具上使用 Grid inside Grid(嵌套网格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com