2014-04-01 4 views
0

내가 caliburn 마이크로의 viewmodels 데이터 바인딩 몇 가지 문제에 봉착 뷰 모델, 나는이 때라도 코드가 있습니다 PaymentDetails는 뷰 모델이다,Caliburn.Micro - 데이터 바인딩 된 ContentPresenter가

<ContentControl Content="{Binding PaymentDetails}"> 
       <ContentControl.Template> 
        <ControlTemplate TargetType="ContentControl"> 
         <Grid> 
          <Controls:RoundedBox/> 
          <ContentPresenter Content="{Binding PaymentDetails}" Margin="10,0,10,0"/> 
         </Grid> 
        </ControlTemplate> 
       </ContentControl.Template> 
      </ContentControl> 

문제는, 그리고에 데이터 바인딩 동안 간단한 ContentControl은 뷰를 찾기 위해 caliburn 마이크로 이름 지정 규칙을 사용하여 작동합니다. 템플리트 및 contentpresenter를 사용할 때 viewmodel 바인딩은 뷰를 찾는 것이 아니라 viewmodel의 문자열 표현을 표시합니다. 나는 이런 종류의 전문가가 아니며, Google에서 대답을 찾지 못했습니다.

내가 원하는 것은 템플릿을 사용하는 동안 viewmodel 바인딩이 평소와 같이보기를 자동으로 찾도록하는 것이지만 여기에는 약간의 이해가 빠져 있다고 생각됩니다.

답변

4

대신 Content 속성에 바인딩하는 대신 cal:View.Model="{Binding ViewModelName}"을 사용하십시오.

예 :

<ContentControl cal:View.Model="{Binding PaymentDetails}" /> 
+0

그래, 그건 완벽했다! 고맙습니다. – Ben

관련 문제