2014-11-04 2 views
0

나는 잘 작동하는 Wizard 탐색을 시뮬레이트하는 데 사용하는 ContentControl이있는 Window가 있습니다. 일부 코드를 리팩토링하기 위해 나는 정확히 같은 방식으로 다른 창에서 사용하는 Wizard의 UserControl 중 하나의 폼을 추출했습니다 ...다른 ContentControl 안에 WPF ContentControl이 표시되지 않습니다.

추출한 UserControl은 잘 작동합니다 다른 창 (마법사가 아닌)에서, 마법사 안의 UserControl 안쪽에 ... 두 상황에서 ContentControl을 사용하고 있습니다 ...

나는 어떤 오류도 발생하지 않습니다 ... 나는 디버깅을했고 두 경우 모두 생성자가 호출되었지만 마법사 내부에서는 나타나지 않습니다.

간단한 창에서 코드는 다음과 같습니다 내 윈도우의 생성자에서

<Controls:MetroWindow x:Class="Desktop.Views.FilePropertiesViewModel"> 
    <Grid> 
    <ScrollViewer VerticalScrollBarVisibility="Visible"> 
     <ContentControl x:Name="DocumentPropertyListViewModel" /> 
    </ScrollViewer> 
    </Grid> 
</Controls:MetroWindow> 

그리고 뒤에있는 코드에서

public DocumentPropertyListViewModel DocumentPropertyListViewModel { get; set; } 
public FilePropertiesViewModel(){ 
    this.DocumentPropertyListViewModel = new DocumentPropertyListViewModel(File.Properties, false); 
} 

의 차이만큼이 말했다 (참고로, 실제 코드가 아님) :

<ContentControl x:Name="Wizard"> <!-- Loading plenty of UserControls> 
    <ContentControl x:Name="DocumentPropertyListViewModel" /> <!-- One of the UserControls has this --> 
</ContentControl> 

그런데 저는 Caliburn.Micro를 사용하고 있습니다. 그래서 ContentControl inste를 사용하고 있습니다. 광고, 정상적인 UserControl 참조의, 나는 그것을 다른 방법을 수행하는 방법을 알아낼 수 없습니다 ...

여기 뭔가 잘못하고 있니?

+0

CM을 구성 했는데도 작동하지만 찾을 수없는 컨트롤이 하나 있습니까? 둘째, 뷰 모델을 사용하지 않고 코드 숨김을 사용하고 있습니까? 태그를 수정하고 싶을 수도 있습니다. Caliburn! = Caliburn.Micro, 같은 사람이지만 약간 다른 사람이 만들었습니다. – mvermef

+0

컨트롤이 발견되었습니다. 모든 것이 제대로 호출됩니다. 단지 마법사 내 usercontrol에 나타나지 않습니다. 나는 viewmodel을 사용하고, 코드 숨김에 아무것도 가지고 있지 않다. –

+0

전에 LogManager를 사용 해본 적이 있습니까? 바인딩 문제가있는 것 같아요 ... – mvermef

답변

0

이 시도 줄 수도 ...

<ContentControl x:Name="Wizard"> <ContentControl cm:View.Model="{Binding DocPropListViewProp}" /> </ContentControl>

DocPropListViewProp가 메인 창에 입력 한 DocumentPropertyListViewModel의 뷰 모델 속성입니다

뷰 모델

And in the code behind, in the constructor of my Window public DocumentPropertyListViewModel DocumentPropertyListViewModel { get; set; } public FilePropertiesViewModel(){ this.DocumentPropertyListViewModel = new DocumentPropertyListViewModel(File.Properties, false); } 아직도 고민 위 코드는 코드 숨김에서 코드 모델을 가지고 있다고 말하면서 ViewModel을 의미합니까?

또한 IoC 용으로 어떤 컨테이너를 사용하고 있습니까? MEF, SimpleContainer 등 ...? 아무것도?

+0

감사합니다.이 시간으로 돌아가는 데 시간이 걸렸습니다. 값을 변경할 때 알림을 변경해야했습니다. –

관련 문제