MVVM 패턴을 사용하여 사용자가 프로세스의 순서도를 만들 수있는 WPF 응용 프로그램을 개발하는 초기 단계에 있습니다. 왼쪽 창에서 MVVM을 사용하는 프로세스 모델러
기호는 WPF 경로 개체 다음과 같이
예비보기 보인다.
사용자가 심볼 패널에서 심볼을 다이어그램 부분으로 드래그 할 수 있어야합니다.
이제 코드 숨김 이벤트가있는 직선 WPF에서 작업하는 것이 매우 간단하지만 MVVM 패턴을 사용하여 구현하는 방법에 대한 제안이 필요합니다. 나는 내 모델에서 캔버스 (?)로 드래그 된 모든 심볼을 포함하는 Observable 컬렉션을 가지고 있다고 가정합니다. 그런 다음 심볼을 캔버스 위로 드래그 할 때마다 해당 컬렉션을 어떻게 업데이트합니까?
MVVM을 사용하는 경우보기의 코드 숨김이 완전히 비어 있어야하지만보기에 이벤트를 배타적으로 처리하는 코드를 배치하면 패턴이 깨지는 것이 이상적이라고 생각합니다.
도움을 주시면 감사하겠습니다.
<ItemsControl ItemsSource="{Binding Symbols}" ... />
은 물론, 당신은 적절한 데이터 템플릿 항목 템플릿이 필요합니다 캔버스 '의 ViewModel에서
당신은 나에게 몇 가지 조언을 해 주셨습니다. 심볼 패널에서 다이어그램 캔버스로 드래그 기능을 구현하는 방법에 대한 제안 사항은 무엇입니까? – user823486
WPF의 DragDrop.DoDragDrop()을 사용하여 드래그 작업을 시작하고 캔버스의 Drop 이벤트 핸들러에서 DragEventArgs.GetPosition()을 사용하여 심볼을 배치 할 마우스 위치를 결정합니다. –