2014-02-13 113 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;