> 백엔드 개발 > C++ > WPF 애플리케이션의 하위 뷰 모델에서 기본 뷰 모델 함수를 호출하려면 어떻게 해야 합니까?

WPF 애플리케이션의 하위 뷰 모델에서 기본 뷰 모델 함수를 호출하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-29 18:26:10
원래의
825명이 탐색했습니다.

How Can I Invoke Main View Model Functions from Child View Models in a WPF Application?

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

문제:

애플리케이션에서 트리 보기와 여러 콘텐츠 표시기를 사용하여 기본 창 보기 모델 내에서 함수를 호출하려고 합니다. (MainWindowViewModel) 트리 뷰 뷰 모델(TreeViewViewModel). MainWindowViewModel이 이러한 변경 사항을 제어하므로 디스플레이를 수동으로 업데이트하는 데 필요합니다.

해결책:

대리자 개체를 사용하는 것은 이러한 상위-하위 통신을 위한 실행 가능한 솔루션입니다. 대리자 메서드는 자식-부모 뷰 모델, 코드 숨김 관계, 순수 데이터 상호 작용 등 다양한 컨텍스트에서 사용될 수 있습니다. 대리자에 대한 자세한 내용은 Microsoft의 Delegates(C# 프로그래밍 가이드) 설명서를 참조하세요.

대리자 구현:

TreeViewViewModel에서 대리자를 구현하여 상위 뷰 모델로 돌아가는 경로입니다. 하위 뷰 모델이 준비되면 호출할 대리자 메서드를 정의합니다.

public delegate void ReadyForUpdate();
public ReadyForUpdate OnReadyForUpdate { get; set; }
로그인 후 복사

기본 뷰 모델(MainWindowViewModel)은 핸들러 연결 시 UpdateDisplay 메서드를 구독합니다.

public void TreeViewViewModel_OnreadyForUpdate()
{
    UpdateDisplay();
}
로그인 후 복사

데이터 바인딩 접근 방식:

또는 더 간단한 접근 방식을 고려해 보세요. 하위 뷰에서 상위 뷰 모델로의 직접 데이터 바인딩이 포함됩니다. 예를 들어 버튼 명령 속성을 바인딩합니다.

<!-- 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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿