2014-02-13 87 views
0

我有一个窗口,我想绑定来自2个不同DataModels的数据上下文。我遇到过这个帖子: WPF binding multiple controls to different datacontexts它不能在我的代码中工作。我不知道你是否必须设置一个新的类的实例来使它工作,但我不能让它显示我的数据。这里有一个样本wpf MVVM中的多个DataContext?

<Grid> 
    <Button Command="{Binding FurnaceDataViewModel.StartButtonCommand}"/> 
    <Button Command="{Binding FurnaceDataViewModel.StopButtonCommand}"/> 
    <Button Command="{Binding FurnaceDataViewModel.ClearButtonCommand}"/> 

    <Label Content="{Binding FurnaceDataModel.TotalTimeIdle}" /> 
    <Label Content="{Binding FurnaceDataModel.GallonsUsed}" /> 
    <Label Content="{Binding FurnaceDataModel.TotalMoney}" /> 
    <Label Content="{Binding FurnaceDataModel.TotalTimeRun}" />  

</Grid> 

我有我的MainWindow类:

FurnaceDataContext dataContext = new FurnaceDataContext(); 
InitializeComponent(); 
DataContext = dataContext; 

这里是我的DataContext类

class FurnaceDataContext 
{ 
    public FurnaceDataViewModel FurnaceDataViewModel { get; set; } 
    public FurnaceDataModel FurnaceDataModel { get; set; } 
    public SqlDataModel SqlDataModel { get; set; } 
} 

我不能让它正确地显示我的文本或我的按钮命令。有任何想法吗?

+0

可能是因为你的'dataContext'对象的属性等于空。你应该分配内部属性,比如'dataContext.FurnaceDataViewModel = something;' – vorrtex

+0

你在哪里创建FurnaceDataViewModel和FurnaceDataModel的新实例?你需要创建它吗?FurnaceDataContext dataContext = new FurnaceDataContext(); datacontext.FurnaceDataViewModel = new ...(); ..等等 – codeSetter

回答

5

您需要实例内道具....

FurnaceDataContext dataContext = new FurnaceDataContext(); 

    dataContext.FurnaceDataViewModel = new FurnaceDataViewModel(); 
    dataContext.FurnaceDataModel = new FurnaceDataModel(); 

    DataContext = dataContext;