1

我在 Datagrid.RowDetailsTemplate 中创建了一个 Datagrid,Items.refresh当我单击在我的 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

使用ICollectionViewSortDescription进行排序DataGrid。访问 可能不是一个好主意datagrid_Detail,而是操作底层数据。

于 2015-07-13T21:03:42.433 回答
0

您不能只使用名​​为“b”的集合来更改项目吗?

如果绑定配置良好,我的意思是:

  • b 是一个ObservableCollection

以及您集合中的每个自定义数据类型

  • 工具INotifyPropertyChanged

您应该能够更新每个对象的属性或从集合中添加/删除项目,并且视图将在没有其他额外代码的情况下更新。

至少这是我会做的事情。也许我不太了解您令人耳目一新的场景。

于 2015-07-13T13:42:28.220 回答