0

子データグリッドがネストされたシルバーライトのデータグリッドがあります。またDataPager、外側のデータグリッドにもあります。コードは次のようになります。

<data:DataGrid x:Name="dgData"  Width="600" ItemsSource="{Binding}" AutoGenerateColumns="False" IsReadOnly="True"
                       HorizontalScrollBarVisibility="Hidden" CanUserSortColumns="False" RowDetailsVisibilityChanged="dgData_RowDetailsVisibilityChanged" Margin="20,0" Grid.RowSpan="2">
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn Header="Item" Width="*" Binding="{Binding ItemName,Mode=TwoWay}"/>
                    <data:DataGridTextColumn Header="Company" Width="*" Binding="{Binding Company,Mode=TwoWay}"/>
                </data:DataGrid.Columns>
                <data:DataGrid.RowDetailsTemplate>
                    <DataTemplate>
                        <data:DataGrid x:Name="dgRowDetail" Width="400" HorizontalScrollBarVisibility="Hidden" AutoGenerateColumns="False" Visibility="Collapsed">
                            <data:DataGrid.Columns>
                                <data:DataGridTextColumn Header="Date" Width="*" Binding="{Binding Date,Mode=TwoWay}"/>
                                <data:DataGridTextColumn Header="Price" Width="*" Binding="{Binding Price,Mode=TwoWay}"/>
                            </data:DataGrid.Columns>
                        </data:DataGrid>
                    </DataTemplate>
                </data:DataGrid.RowDetailsTemplate>
            </data:DataGrid>

            <data:DataPager x:Name="dpData" HorizontalAlignment="Center" DisplayMode="FirstLastPreviousNextNumeric" Source="{Binding}"/>

PagedCollectionView次のように、外部データグリッドにバインドされている pgvが 1 つあります。

DataContext = pgv;

行がクリックされると、子データグリッドの ItemsSource プロパティを別の に設定しますPagedCollectionView

私の問題は、最初の行を除いて初めて正常に動作することです。dgData_RowDetailsVisibilityChangedクリックしてもイベントが発生しません。

また、2 行目をクリックすると、最初の行でイベントが発生し、次に 2 行目でイベントが発生してネストされたグリッドが表示されます。

4

1 に答える 1

0

dgData.SelectedIndex = -1;初めて使用するときはうまくいきました。

于 2010-05-31T07:58:13.737 に答える