2015-07-13 90 views
1

我在Datagrid.RowDetailsTemplate中創建了一個Datagrid,並且當我單擊在Datagrid之外創建的按鈕時,我想使用Items.refresh在Rowdetailtemplate中訪問數據網格

我無法找到一個方法來訪問此函數的按鈕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"/> 

謝謝你的幫忙。

回答

0

難道你不能只使用名​​爲「b」的集合爲了改變項目?

如果綁定以及配置,以及通過我的意思是:

  • b是ObservableCollection

和您的集合中的每個自定義數據類型

  • 實現INotifyPropertyChanged

您應該能夠更新每個對象的屬性或從集合中添加/刪除項目,並且該視圖將被更新,而無需其他額外的代碼。

至少這是我會做的。也許我不是很瞭解你的令人耳目一新的場景。

+0

我的場景是: - 我對我的datagrid_Detail的一列進行排序 - 我更新我的數據 - 我的數據已更新,但datagrid顯示並非因爲排序。 – Artcha

0

使用ICollectionViewSortDescription來排序DataGrid。訪問datagrid_Detail可能不是一個好主意,但可以改爲操作底層數據。