gpt4 book ai didi

wpf - 使用 XamDataGrid 实现行详细信息

转载 作者:行者123 更新时间:2023-12-01 16:14:17 26 4
gpt4 key购买 nike

现在我正在尝试将 WPF DataGrid 的 RowDetails 功能之类的功能实现到 XamDataGrid 中。我尝试做的事情(到目前为止失败了):

1.) 替换 ExpandableFieldRecordPresenterStyle

在 FieldSettings 中,我用我自己的样式替换 ExpandableFieldRecordPresenterStyle此样式位于窗口资源中,并将 Template/TemplateGridView (都尝试过)属性设置为我自己的 DataTemplate/ControlTemplate (都尝试过)。

这不起作用,尽管样式已设置,但我没有看到视觉表现有任何变化。

2.) 替换 DataRecordPresenterStyle

在 FieldLayoutSettings 中,我用我自己的样式替换 DataRecordPresenterStyle。这与之前的方法相同并且有效。但是,现在我必须重新实现原始的 DataPresenterStyle,因为我只想添加行详细信息控件,但其余部分保持不变。这就是我现在陷入困境的地方。

在这两种变体中,我的样式和模板都非常简单:

<ControlTemplate x:Key="NestedRecordTemplate">
<TextBlock Text="test"/>
</ControlTemplate>

<Style x:Key="NestedRecordStyle" TargetType="{x:Type igDP:DataRecordPresenter}">
<Setter Property="Template" Value="{StaticResource NestedRecordTemplate}" />
</Style>

我研究了基础设施论坛(有人建议选择第二个选项)和互联网,但尚未找到解决方案。

最佳答案

此线程中有一个示例可以用作如何实现此目的的示例:http://community.infragistics.com/forums/p/43348/238054.aspx

请注意,线程中提供的示例 Alex 使用绑定(bind)字段作为行详细信息,如果您没有要绑定(bind)的字段,则可以使用 UnboundField 代替。下面显示了一个示例:

<igDP:XamDataGrid x:Name="XamDataGrid1">
<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings AutoGenerateFields="False"/>
</igDP:XamDataGrid.FieldLayoutSettings>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings AutoArrangeCells="Never"/>
</igDP:FieldLayout.Settings>
<igDP:FieldLayout.Fields>
<igDP:Field Name="EmployeeID" Row="0" Column="0"/>
<igDP:Field Name="Name" Row="0" Column="1"/>
<igDP:Field Name="OnSite" Row="0" Column="2"/>
<igDP:Field Name="DateOfHire" Row="0" Column="3"/>
<igDP:Field Name="Department" Row="0" Column="4"/>
<igDP:Field Name="Site" Row="0" Column="5"/>
<igDP:UnboundField Name="RowDetails" Row="1" Column="0" ColumnSpan="6">
<igDP:UnboundField.Settings>
<igDP:FieldSettings>
<igDP:FieldSettings.LabelPresenterStyle>
<Style TargetType="{x:Type igDP:LabelPresenter}">
<Setter Property="Visibility" Value="Collapsed"/>
</Style>
</igDP:FieldSettings.LabelPresenterStyle>
<igDP:FieldSettings.CellValuePresenterStyle>
<Style TargetType="{x:Type igDP:CellValuePresenter}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Row Details for "/>
<TextBlock Text="{Binding DataItem.Name}"/>
</StackPanel>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</igDP:FieldSettings.CellValuePresenterStyle>
</igDP:FieldSettings>
</igDP:UnboundField.Settings>
</igDP:UnboundField>
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>

关于wpf - 使用 XamDataGrid 实现行详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666244/

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