DataGrid не обновляется после удаления строки

Я использую фреймворки PRISM и MEF. У меня есть datagrid, который отображает некоторые данные, а под ним есть RowDetailsTemplate, который, в свою очередь, имеет datagrid. Теперь, если я попытаюсь удалить строку из таблицы данных в RowDetailsTemplate, пользовательский интерфейс не будет обновляться после операции удаления. другими словами, строка удаляется, но остается пустое место, и строки под текущей строкой не перемещаются вверх.

Ниже приведен фрагмент кода.

<Controls1:DataGrid x:Name="dgProposals"
 Grid.Row="1" ItemsSource="{Binding Items}" AutoGenerateColumns="False"   
  BorderThickness="0"
  CanUserResizeColumns="False" RowDetailsVisibilityMode="Visible">
<Controls1:DataGrid.Columns>
   <Controls1:DataGridTextColumn Binding="{Binding ProposalName}" Width="*"     
      CanUserSort="False" IsReadOnly="True" CanUserReorder="False" >              
    </Controls1:DataGridTextColumn>
    <Controls1:DataGridTextColumn Binding="{Binding DisplayProposalType}"
       Width="*" CanUserSort="False" IsReadOnly="True" CanUserReorder="False" >
    </Controls1:DataGridTextColumn>                
</Controls1:DataGrid.Columns>
<Controls1:DataGrid.RowDetailsTemplate >
    <DataTemplate>
       <Controls1:DataGrid x:Name="dgReports" ItemsSource="{Binding ReportList}"
    AutoGenerateColumns="False" BorderThickness="0"
    CanUserResizeColumns="False" HeadersVisibility="None">                        
          <Controls1:DataGrid.Columns>
              <Controls1:DataGridTextColumn Binding="{Binding Name}" Width="*" 
                 CanUserSort="False" IsReadOnly="True" CanUserReorder="False" >
              </Controls1:DataGridTextColumn>
              <Controls1:DataGridTemplateColumn Width="100" CanUserSort="False" 
                 CanUserReorder="False">
               <Controls1:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                       <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">                                            
                           <Button VerticalAlignment="Center" Cursor="Hand"
                               Command="{Binding DataSource.EditReportNameCommand, 
                               Source={StaticResource DataContextProxy}}"
                               CommandParameter="{Binding}" Margin="5,0">
                           </Button>
                         </StackPanel>
                     </DataTemplate>
                </Controls1:DataGridTemplateColumn.CellTemplate>
              </Controls1:DataGridTemplateColumn>
            </Controls1:DataGrid.Columns>
          </Controls1:DataGrid>
       </DataTemplate>
   </Controls1:DataGrid.RowDetailsTemplate>

BO Code snippet as follows:

public class ProposalPreview : NotificationObject
{
    public string ProposalName { get; set; }
    public int PartyId { get; set; }
    public string PartyName { get; set; }       
    public string DisplayProposalType { get; set; }
    private ObservableCollection<ArchievedReport> reportList = null;
    public ObservableCollection<ArchievedReport> ReportList
    {
        get { return reportList; }
        set { reportList = value; }
    }
    public ProposalPreview()
    {

        ProposalName = "";            
        DisplayProposalType = String.Empty;            
        ReportList = new ObservableCollection<ArchievedReport>();
    }
}

public class ArchievedReport : NotificationObject
{
    private string name;
    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            RaisePropertyChanged("Name");
        }
    }
    public int ReportId { get; set; } 
}

Здесь Items - это ObservableCollection.

Надеюсь, я понимаю свое описание. Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация. Любая помощь приветствуется. Большое спасибо за уделенное время.

Спасибо,

Мэдди.


person user1181458    schedule 31.01.2012    source источник


Ответы (1)


Вам необходимо повторно привязать источник данных после удаления строки.

person Emil Dumbazu    schedule 31.01.2012
comment
Я использую шаблон MVVM, я не знаю, как можно повторно привязать источник данных из ViewModel. Вы можете уточнить свой ответ? - person user1181458; 01.02.2012