WP7 Silverlight - 在运行时更改DataContext

时间:2010-11-28 18:28:48

标签: c# silverlight windows-phone-7

如何在运行时将DataContext更改为另一个视图模型。 运行click事件后,现在数据没有更改:

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

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

一些建议?

2 个答案:

答案 0 :(得分:1)

首先我认为你有一个错字:App.TaskViewMode应该是App.TaskViewModel。第二:你的代码应该有效。您的xaml文件中可能存在绑定问题,如果您在此处发布,则会出现问题。 (也许你绑定到像“User.Name”这样的子成员,并且不在你的模型中实现INotifyPropertyChanged)

如果更改DataContext = App.TaskViewModel会发生什么? to DataContext = null; ?)Xaml很有趣。

答案 1 :(得分:0)

你写的代码应该没问题。这取决于TaskViewMode是什么以及它是如何工作的。

假设它基于默认Pivot项目模板中的MainViewModel。您是否在其上调用LoadData()来填充项目集合?