0
PRISM 및 MEF 프레임 워크를 사용하고 있습니다. 일부 데이터를 표시하는 DataGrid가 있고 그 아래에 RowDetailsTemplate이 차례로 DataGrid를 갖습니다. 이제 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.
MVVM 패턴을 사용하고 있는데 ViewModel에서 데이터 소스를 리 바인드 할 수있는 방법을 모르겠습니다. 당신은 당신의 대답을 자세히 설명해 주시겠습니까? – user1181458