将datacontext指定为通用Viewmodel

时间:2013-03-07 09:29:52

标签: viewmodel mvvm-light datacontext

我已经定义了一个像

这样的视图模型
   public class DataGridBaseViewModel<T>:ViewModelBase
    {
    ObservableCollection<T> DataCollection;
public abstract void Initialize();


    }
public class Grid1ViewModel:DataGridBaseViewModel<MyModel1>
{
public void override Initialize()
{
DataCollection = new ObservableCollection<MyModel1>();
}
}
public class Grid2ViewModel:DataGridBaseViewModel<MyModel2>
{
public void override Initialize()
{
DataCollection = new ObservableCollection<MyModel2>();
}
}

现在我有2个datagrids,它们应该显示MyModel1和MyModel2。如何指定视图的datacontext。

请帮忙。

提前致谢

1 个答案:

答案 0 :(得分:0)

我的观点是用户控制。我在viewmodel定位器中定义了我的viewmodel,然后在xaml中使用以下命令将视图DATACONTEXT绑定到viewmodel:

<UserControl x:Class="FTC.View.EmployeeListView"
            xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
            xmlns:cmd="http://www.galasoft.ch/mvvmlight"
            mc:Ignorable="d" 
            DataContext="{Binding EmployeeList_VM, Source={StaticResource Locator}}">

所以只需使用上面的示例将datagrids的datacontext绑定到viewmodels