现在,我正在尝试将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使用行字段作为行详细信息,如果您没有要绑定的字段,则可以使用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/

10-09 04:34