내 WPF 응용 프로그램에는 항목을 선택할 수있는 목록이 있습니다. 그러면 선택한 항목이 추가 상호 작용을 위해 ContentControl에 표시됩니다. 선택한 항목의 유형 (여러 항목이있을 수 있음)에 따라 적절한 DataTemplate이 ContentControl에 사용됩니다. 지금까지는 데이터 처리 비즈니스 응용 프로그램에있어 별다른 문제가 없었습니다.ContextMenu 명령 데이터 소스로 바인딩이 업데이트되지 않습니다.
각 DataTemplate에는 해당 값을 ViewModel 클래스의 특정 속성에 바인딩하는 여러 TextBox 및 기타 컨트롤이 있습니다. 목록에서 다른 항목을 선택하면이 모든 항목이 예상대로 업데이트됩니다. 단추는 ViewModel의 올바른 인스턴스에서 명령을 실행합니다.
명령을 실행하는 컨텍스트 메뉴 항목이 하나 있지만 처음 선택한 항목에 대해서만 작동합니다. 목록에서 같은 유형의 다른 요소를 선택하면 이미로드 된 템플릿보기를 다시 사용하여 컨텍스트 메뉴의 명령이 항상 첫 번째로 선택된 항목에서 실행됩니다. 따라서 바인딩은 ViewModel의 올바른 인스턴스로 업데이트되지 않습니다.
메뉴 항목을 올바른 ViewModel 인스턴스로 사용하는 유일한 방법은 템플릿이 다른보기로 변경되도록 다른 유형의 항목을 선택하는 것입니다. 그런 다음 상황에 맞는 메뉴가 올바르게 업데이트됩니다.
보기의 다른 바인딩과 마찬가지로 메뉴 항목 명령을 업데이트하지 않는 이유는 무엇입니까? 로드 할 때 한 번 가져 오지 만보기의 수명 동안 업데이트되지 않습니다.