2012-01-09 2 views
0

은 내가 각 탭 객체 Server를 나타내는 사용 TabControl을 가지고 WPF - MVVMDataContext는 DataTemplates 내부의 UserControls로 어떻게 이동합니까?

와 프로젝트를 실시하고있다. 각 탭에는 Application 목록에 바인드 된 ListBox이 있습니다. 탭 컨트롤과 listbox이 개체 Application는 modelize UserControl로하는 ServerViewModel

에 바인딩 그리고이 객체가 다른 객체의 ViewModel에 바인딩 할하려는 ApplicationViewModel

<TabControl x:Name="_tabControl" 
DataContext="{StaticResource ServerVM}" 
ItemsSource="{Binding UserServerCollection}"> 
    <TabControl.ContentTemplate> 
       <DataTemplate> 
        <ListBox ItemsSource="{Binding ApplicationCollection}"> 
          <DataTemplate> 
           <view:ApplicationView /> 
          </DataTemplate> 
        </ListBox> 
       </DataTemplate> 
    </TabControl.ContentTemplate> 
</TabControl> 

라는 문제가있는 TabControl이다 목록 상자에 항목 수가 많지만 usercontrols가 제대로 바인딩되어 있지 않습니다.

제발 도와주세요. userControl datacontext를 설정하는 방법을 모르겠습니다.

+0

ApplicationCollection에 어떤 객체가 될 것입니다 기본이다 해당 UserControl에 대한 사용자 지정 ViewModel 함께? 그것의 새로운 MVVM 사용자가 실수 중 하나 ... – Will

+0

왜 ** asp.net ** 태그? –

답변

0

DataContext를 반드시 설정할 필요는 없으며, 상속 및 ListBox의 기능을 통해 템플릿 항목으로 자동 설정됩니다. 아마 응용 프로그램보기 모델입니다. ApplicationCollection.

DataContext는 그러나 ApplicationView 내부에 설정되어있는 경우, 당신은 명시 적으로 DataTemplate 때문에 precedence의에서 설정해야합니다. DataContext="{Binding}"이면 충분할지 모르지만 relative source 을 묶는 ListBoxItem에 바인딩 할 수도 있습니다.

0

당신은 ApplicationCollection에서 개체 유형이 될 수 있도록 할 필요가 ApplicationViewModel

귀하의 ApplicationViewListBoxItem.DataContext에서 DataContext의 상속, 그래서 당신은 당신의 ApplicationView 일치하려고 DataContext

관련 문제