> 백엔드 개발 > C++ > WPF의 하위 뷰 모델에서 기본 뷰 모델 함수를 어떻게 호출할 수 있나요?

WPF의 하위 뷰 모델에서 기본 뷰 모델 함수를 어떻게 호출할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-31 20:53:11
원래의
866명이 탐색했습니다.

How Can I Call Main View Model Functions from Child View Models in WPF?

다른 뷰 모델에서 기본 뷰 모델의 함수 호출

여러 뷰 모델로 구성된 다면적인 프로그램 내에서 특정 기능을 실행해야 하는 경우가 종종 있습니다. 다른 하위 뷰 모델의 기본 뷰 모델입니다. 기본 보기 모델이 콘텐츠 표시자 내의 콘텐츠 표시를 관리하고 하위 보기 모델에서 이 디스플레이를 수동으로 업데이트해야 하는 요구 사항이 발생하는 시나리오를 생각해 보세요.

구현

이러한 의사소통 격차를 해소하려면 , 대리자 개체 통합을 고려하세요. 이러한 대리자는 본질적으로 상위 뷰 모델로 돌아가는 경로를 설정하여 메서드를 호출해야 함을 나타내는 "이벤트 발생" 수단을 제공합니다.

간단한 메서드 호출

특정 메서드를 호출하려면 상위 뷰 모델의 메소드에서는 다음 대리자 구문을 활용합니다.

public delegate void ReadyForUpdate();
로그인 후 복사

하위 뷰 내에서 모델:

// Define a handler for the ReadyForUpdate delegate
public void ParameterViewModel_OnParameterChange(string parameter)
{
    // Here, we call the desired method
    UpdateDisplay();
}
로그인 후 복사

상위 뷰 모델에서:

// Attach the handler to the delegate
public ReadyForUpdate OnReadyForUpdate { get; set; }

// When the delegate's event is raised (e.g., by the child calling UpdateDisplay()),
// this method will be executed
public void ChildViewModel_OnReadyForUpdate()
{
    // Desired action occurs here (e.g., updating the display)
}
로그인 후 복사

직접 바인딩

적절한 경우 대체 접근 방식은 하위 뷰에서 직접 바인딩하는 것입니다. 아래 그림과 같이 상위 뷰 모델에:

<!-- In TreeViewView -->
<Button Content="Click Me" Command="{Binding DataContext.ParentCommand, RelativeSource={RelativeSource AncestorType={x:Type MainWindow}}}" />
로그인 후 복사

이는 상위 뷰 모델의 인스턴스가 다음과 같다고 가정합니다. MainWindow의 DataContext로 설정합니다.

위 내용은 WPF의 하위 뷰 모델에서 기본 뷰 모델 함수를 어떻게 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿