2010-11-28 5 views
1

런타임시 DataContext를 다른 뷰 모델로 변경하려면 어떻게해야합니까?WP7 Silverlight - 런타임에서 DataContext 변경

public PivotPage1() 
    { 
     InitializeComponent(); 
     DataContext = App.TeamDocViewModel; 
    } 

    private void Button_Click(object sender, EventArgs e) 
    { 
     DataContext = App.TaskViewModel; 
    } 

제안 : 내가 클릭 이벤트를 실행 한 후 이제 데이터는 변경되지 않습니다?

+1

처음에는 오타가 있다고 생각합니다. App.TaskViewMode는 App.TaskViewModel이어야합니다. 둘째 : 코드가 작동해야합니다. xaml 파일에 바인딩하는 데 문제가있을 수 있습니다. 여기에 게시하면 xiel 파일에 문제가있을 수 있습니다. (아마 "User.Name"과 같은 submembers에 바인딩하고 모델에 INotifyPropertyChanged를 구현하지 마십시오.) –

+0

괜찮습니다. 오류가 없습니다. 그것은 첫 번째보기 모델을 넣어 꽤 좋은 것입니다! 하지만 DataContext를 변경하려고하면 데이터가 변경되지 않지만 이전 모델의 데이터도 표시됩니다. 나는 지금 여기에서 잘못 작성했습니다. – sv88erik

+0

DataContext = App.TaskViewModel을 변경하면 어떻게됩니까? to DataContext = null; ?) Xaml은 흥미 롭습니다. –

답변

1

처음에는 오타가 있다고 생각합니다. App.TaskViewMode는 App.TaskViewModel이어야합니다. 둘째 : 코드가 작동해야합니다. xaml 파일에 바인딩하는 데 문제가있을 수 있습니다. 여기에 게시하면 xiel 파일에 문제가있을 수 있습니다. (아마도 "User.Name"과 같은 하위 항목에 바인딩하고 모델에 INotifyPropertyChanged를 구현하지 마십시오)

DataContext = App.TaskViewModel을 변경하면 어떻게됩니까? to DataContext = null; ?) Xaml은 흥미 롭습니다.

0

작성한 코드는 잘되어야합니다. 그것은 TaskViewMode이 무엇이며 어떻게 작동하는지에 달려 있습니다.

기본 피벗 프로젝트 템플릿에서 MainViewModel을 기반으로한다고 가정합니다. 아이템 콜렉션을 채우기 위해 LoadData()을 호출하고 있습니까?

관련 문제