2012-01-31 71 views
0

我正在使用PRISM和MEF框架。 我有一个数据网格,它显示了一些数据,并且它下面有RowDetailsTemplate,它又有数据网格。现在,如果我尝试从RowDetailsTemplate下的datagrid中删除一行,那么在删除操作之后UI将不会刷新。换句话说,该行被删除,但剩下一个空白空间,并且当前行下方的行不会向上移动。删除行后DataGrid不会刷新

下面是代码片段。

<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代码片断如下:

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; } 
} 

这里项目是的ObservableCollection。

希望我对我的描述很清楚。 请让我知道你是否需要更多信息。 任何帮助,不胜感激。 非常感谢您的时间。

谢谢,

Maddy。

回答

0

删除该行后,您需要重新绑定数据源。

+0

我正在使用MVVM模式,我不知道如何重新绑定ViewModel的数据源。你能详细说明你的答案吗? – user1181458 2012-02-01 00:02:43