使用XamDataGrid实现行详细信息

时间:2011-07-12 14:55:36

标签: wpf infragistics xamdatagrid rowdetails

现在我正在尝试将类似WPF DataGrid的RowDetails功能实现到XamDataGrid中。我试图做的事情(直到现在才失败):

1。)替换ExpandableFieldRecordPresenterStyle

在FieldSettings中,我将ExpandableFieldRecordPresenterStyle替换为我自己的Style 此样式位于窗口资源中,并将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>

我已经研究过infragstics论坛(已经提出了第二种选择的建议)和互联网,还没有找到解决方案。

1 个答案:

答案 0 :(得分:3)

此线程中有一个示例可用作如何完成此操作的示例: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>
相关问题