복사/붙여 넣기를 위해 DataGrid에서 상황에 맞는 메뉴를 사용하고 있습니다. 하지만 ContextMenu의 명령 매개 변수에서 현재보기를 얻지 못하고 있습니다. 다른 명령 바인딩에서 현재보기 상태를 얻기 위해 내 View 이름을 Command 매개 변수로 전달했습니다. 하지만 이제는 ContextMenu를 사용하여 내보기를 전달할 수 없으므로이 ContextMenu가 붙어 있습니다. MVVM을 사용하고 있습니다.ContextMenu에서 전체보기를 전달하는 방법은 무엇입니까?
내 조각이
<DataGrid.ContextMenu>
<ContextMenu x:Name="_menu">
<MenuItem Header="Copy" Command="{Binding CopyCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}},Path=DataContext}" />
</ContextMenu>
</DataGrid.ContextMenu>
답장을 보내 주셔서 감사합니다. 그러나 이것 역시 시도했지만 문제는 데이터 그리드가 (뷰) DataContext가 아닌 다른 ViewModel에 정의 된 값을 포함한다는 것입니다. DataGrid에서 행을 선택하고 마우스 오른쪽 버튼으로 클릭하고 복사합니다. 개체를 null로 설정하면 검색 할 수없는 views 개체에서 선택한 항목을 원합니다. – PhOeNiX
쉬운 방법은 windowviewmodel을 datagridview viewmodel의 속성으로 노출하는 것입니다. 하지만 이렇게하면 커맨드 매개 변수를 제거 할 수 있습니다. 현재 뷰 모델에서 윈도우 탐색을해야하기 때문입니다. 그래서 commandparameter 제거하고 mef 또는 무엇을 통해 datagridviewmodel windowviewmodel 주입 할 것이라고 말할 것입니다. – blindmeis