2015-01-27 1 views
1

외부 부모 DataGrid 내에 중첩 된 하위 데이터를 표시하는 DataGrid이 있는데 선택한 모든 셀 (부모 및 자식)을 복사하려고합니다.중첩 DataGrid에서 복사

내 외부 데이터 그리드에서 다음 상황에 맞는 메뉴를 포함 시켰하는 부모 데이터를 성공적으로 복사 :

<DataGrid Grid.Column="2" Name="dgCalls" ItemsSource="{Binding FoundCallsList}" 
      AutoGenerateColumns="False" Background="{DynamicResource WindowBackgroundBrush}" 
      IsReadOnly="True"> 

    <DataGrid.ContextMenu> 
    <ContextMenu> 
     <MenuItem Command="Copy"> 
     <MenuItem.Icon> 
      <Image Source="..\resources\CopyHS.png" /> 
     </MenuItem.Icon> 
     </MenuItem> 
    </ContextMenu> 
    </DataGrid.ContextMenu> 
    ... 

내가 내부 데이터 그리드에이 코드를 추가했지만, 아무 소용. 상위 및 하위 데이터를 선택하여 복사하는 경우 붙여 넣을 때 외부 데이터 만 가져옵니다. 자식 데이터 만 선택하면 붙여 넣을 때 빈 줄이 생깁니다.

XAML은 내부 그리드, 그것은 도움이된다면 :

<DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
    <DataGrid ItemsSource="{Binding CallQueries}" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Question" Width="450"> 
      <DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <TextBlock VerticalAlignment="Stretch" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding QueryQuestion}" /> 
      </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    ... 

어떻게 모두 innner (자식) 및 외부 (부모) 데이터 그리드에서 데이터를 복사합니까?

+0

샘플 코드를 제공 할 수 있습니까? –

+0

@ a.azemia xaml은 컨트롤의 구현을 사용하는 기본 제공 ApplicationCommands.Copy 속성을 사용하고 있습니다. 이 문제는 .cs 코드가 없습니다 (일부는 작성해야 할 것으로 예상되지만). – mcalex

답변

0

나는 두 가지 접근 방법이 가겠어요 :

을 첫 번째 :

(같은 인스턴스)에 모두 부모와 자식 DataGrids를을 리소스로 상황에 맞는 메뉴를 생성하고 할당 시도 이것은 MS Window의 기본 동작이 연관된 항목의 선택을 복사한다는 가정에 근거합니다.

는 두 번째 :

처음이 작동하지 않는 경우. PlacementTarget (부모 DataGrid)을 추출한 다음 해당 항목 (즉, 행)에서 실행하고 DataGrid (자식 DataGrids)를 추출하는 ContextMenu의 비헤이비어를 만듭니다.

VisualTreeHelper 또는 요소에서 노출 된 속성은 자체 또는 두 가지의 조합입니다.

관련 문제