3

現在、WPFDataGridの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>

私はインフラグティクスフォーラム(2番目のオプションを使用するための提案があります)とインターネットを調査しましたが、まだ解決策を見つけていません。

4

1 に答える 1

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>
于 2012-02-25T20:58:32.127 に答える