0

i have a window that i'd like to bind the data context from 2 different DataModels from. i've come across this post: WPF binding multiple controls to different datacontexts and it's not working in my code. i don't know if you have to set a 'new' instance of the classes to make it work, but i can't get it to show my data. here's a sample

<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>

i have my MainWindow Class:

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

here's my DataContext class

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

i can't get it to display my text correctly or my button commands. any ideas?

Community
  • 1
  • 1
darthwillard
  • 809
  • 2
  • 14
  • 28
  • Probably because properties of your `dataContext` object are equal to null. You should assign inner properties too, like `dataContext.FurnaceDataViewModel = something;` – vortexwolf Feb 13 '14 at 16:49
  • Where are you creating new instance of FurnaceDataViewModel and FurnaceDataModel ? are you?.... You need to create it.FurnaceDataContext dataContext = new FurnaceDataContext(); datacontext.FurnaceDataViewModel = new ...(); ..so on – dipak Feb 13 '14 at 16:50

1 Answers1

5

You need to instantiate inner props....

    FurnaceDataContext dataContext = new FurnaceDataContext();

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

    DataContext = dataContext;
dipak
  • 2,011
  • 2
  • 17
  • 24