사이에 이벤트 및 EventArgs입니다 매개 변수를 수신 I 엄지 제어에 의해 슬로우 마우스 드래그 이벤트를 처리하는 다음과 같은 코드가 있습니다. 그것은 표준 SettingView.xaml 등 뒤에 코드 SettingView.xaml.cs WPF의 MVVM (명령을 사용하여) 전달하고 뷰와 뷰 모델
하지만 어떻게 난 내 SettingViewModel.cs 파일이 처리하나요에서 잘 작동합니다.지금까지 내가 매개 변수를 DelegateCommand (또는 RelayCommand)를 사용하여 클릭을 연결할 수 있었다,하지만 내가 어떻게 이벤트가 보낸 매개 변수에서 입력을받을 수 있나요? 예를 들어 드래그 이벤트는 이벤트 인수 e.HorizontalChange 및 e.VerticalChange를 제공합니다. 제 코드의 프로토 타입을 아래에서 보시기 바랍니다.
모든 우아한 해결책
은 많이 감사합니다.미리 감사드립니다.
============================================== ==================== SettingView.xaml
Thumb Name = "thumbWest" 직접 명령에 선언 된 바인딩에 의해 뒤에 코드를 제거하기에 대한 DragDelta = "thumbWest_DragDelta
SettingView.xaml.cs
private void thumbWest_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
_captureMargin.Left = _captureMargin.Left + e.HorizontalChange;
if (e.HorizontalChange < 0)
{
// Drag towards West
_widthRect = _widthRect + Math.Abs(e.HorizontalChange);
}
if (e.HorizontalChange > 0)
{
// Drag towards East
_widthRect = _widthRect - e.HorizontalChange;
}
감사 사용에 대한 좋은 자습서를 찾을 수 있습니다. ViewModel과 View 사이에서 XAML을 사용하는 프레임 워크 조쉬 스미스 (Josh Smith) 샘플을 따르기 때문에 첫 번째 접근법에 대해서는 내 usercontrol 내에 Viewmodel의 인스턴스가 없습니다. 비록이 경로를 통해 갈 수 있을지 확신 할 수 없다는 것은 매우 간단합니다. 두 번째의 경우 , 나는 XAML을 사용하는 방법을 이해 NT 수 있습니다. xaml 코드의 일부 야구장 프로토 타입을 제공해 주시겠습니까? –
잠시 동안 두 번째 방법을 사용하는 방법에 대한 예제를 제공합니다. 첫 번째에 대해서는 ViewModel이 View의 DataContext 여야합니다. 따라서 Usercontrol \ window (View)의 DataContext 속성을 ViewModel 클래스로 캐스팅하고 ViewModel을 사용하여 ViewModel을 가져올 수 있습니다. –
건배 Souvik, MVVM을 사용하여 레이어링의 목적을 패배시키기 때문에, 첫 번째 접근 방식은 정상적으로 작동하지만 임시 처리가 가능합니다. 사실 나는 메서드를 공개하고 viewmodel 객체의 인스턴스에서 직접 호출 할 수 있습니다. 이제 AttachedBehaviour에 다시 한 번 시도해 보겠습니다. –