1

Items.refreshDatagrid.RowDetailsTemplate で Datagrid を作成しました。Datagridの外で作成されたボタンをクリックしたときに使用したいと思います。

ボタン button_refreshDetail を使用して datagrid_Detail のこの関数にアクセスする方法が見つかりません。これが私のコードです:

<DataGrid x:Name="datagrid" HorizontalAlignment="Left" Height="618" Margin="10,74,0,0" VerticalAlignment="Top" Width="1472" AutoGenerateColumns="False" LoadingRowDetails="datagrid_LoadingRowDetails" CanUserAddRows="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="a" Binding="{Binding a}" Width="*"/>
        </DataGrid.Columns>
        <DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <DataGrid x:Name="datagrid_Detail" ItemsSource="{Binding b}" AutoGenerateColumns="False" SelectionChanged="datagrid_Detail_SelectionChanged" MouseLeftButtonUp="datagrid_Detail_MouseLeftButtonUp">
                    <DataGrid.Columns>
                        <DataGridCheckBoxColumn Header="c" Binding="{Binding c, Mode=TwoWay}" IsReadOnly="False"/>
                        <DataGridTextColumn Header="d" Binding="{Binding d, Mode=TwoWay}" IsReadOnly="False"/>
                        <DataGridComboBoxColumn Header="e" x:Name="combobox_e"/>
                        <DataGridComboBoxColumn Header="f" x:Name="combobox_f"/>
                        <DataGridTextColumn Header="g" Binding="{Binding g, Mode=TwoWay}" IsReadOnly="False"/>
                        <DataGridComboBoxColumn Header="h" x:Name="combobox_h"/>
                        <DataGridComboBoxColumn Header="i" x:Name="combobox_i"/>
                        <DataGridTemplateColumn Width="45" Header="j">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Image Source="j.png" Width="20" Height="20"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>
    </DataGrid>
    <Button x:Name="button_refreshDetail" Content="button_refreshDetail" HorizontalAlignment="Left" Height="26" Margin="129,697,0,0" VerticalAlignment="Top" Width="118" Click="button_refreshDetail"/>

ご協力ありがとうございました。

4

2 に答える 2

0

アイテムを変更するために、「b」という名前のコレクションを使用することはできませんか?

バインディングが適切に構成されている場合、つまり次のことを意味します。

  • b はObservableCollection

コレクション内のすべてのカスタム データ型

  • 実装しますINotifyPropertyChanged

各オブジェクトのプロパティを更新したり、コレクションからアイテムを追加/削除したりできる必要があり、ビューは他の追加コードなしで更新されます。

少なくともこれは私がすることです。多分私はあなたのさわやかなシナリオをよく理解していません.

于 2015-07-13T13:42:28.220 に答える
0

と を使用ICollectionViewSortDescriptionて並べ替えますDataGrid。にアクセスするのは得策ではないかもしれませんが、datagrid_Detail代わりに基になるデータを操作してください。

于 2015-07-13T21:03:42.433 に答える