2017-05-02 6 views
2

MahApps.Metro 1.5.0의 변경 사항으로 플라이 아웃의 기본 요소가 ContentControl에서 HeaderContentControl으로 변경되었습니다. 이제 Caliburn.Micro 및 this 제안을 사용한 MVVM 접근 방식은 더 이상 작동하지 않습니다.WPF // MahApps.Metro // Caliburn.Micro // Flyout // HeaderedContentControl

멋진 MVVM 방식으로이 문제를 해결하려고하는 사람이 있습니까? 나는 그것을 자신을 시도하지 않은하지만 새로운 Flyout 제어가 지금 HeaderedContentControl를 기반으로하기 때문에이 간단한 논리 선택이 아닌 ContentControl를 기반으로 한 이전의이 작업을 수행하려고 시도하는 것 동안

+0

다음 링크를 참조하십시오. https://github.com/MahApps/MahApps.Metro/issues/2953 – Eternal21

+0

나는 거기에 가입 할 것이고 (여기에 답변으로 업데이트 할 것입니다). – Sebastian

답변

0

.

<controls:FlyoutsControl.ItemTemplate> 
    <DataTemplate> 
    <HeaderedContentControl cal:View.Model="{Binding}" /> 
    </DataTemplate> 
</controls:FlyoutsControl.ItemTemplate> 

당신이 Caliburn.micro 규칙을 만드는 것이이 나올 수있는 다른 일이 실제로 HeaderedContentControl 올바르게 바인딩 ... 종속성 속성의 몇 가지의 제거했다 이러한 변화의 장점 같은데 이는 이미 ContentControl 변형과 다른 것은 아닙니다. 기본적으로 이미 CM에 있습니다. 홀수 인 이유는이 HeaderedContentControl이 이론적으로 ContentControl에서 파생되었으므로 제대로 발견되어 있어야합니다. 생각해 볼 또 다른 사실은 실제로 CM이 트리에 나타날 때까지 볼 수없는 비주얼 트리와 관련 될 수 있으므로 바인딩 할 수 없다는 것입니다.

Content Control convention in CM source을 참조하십시오.

+0

변경된 ItemTemplate에서 작동하지 않습니다. 헤더가 "System.String에 대한보기를 찾을 수 없습니다."로 설정됩니다. 내용은 ViewModel.ToString() 속성을 보여줍니다 (그러나 Snoop을 통해 DataContext가 올바르게 설정되었음을 알 수 있습니다). – Sebastian

0

on GitHub에 대한 자료를 게시했습니다.

FlyoutsControlItemTemplate을 설정하면 문제가 발생합니다.