【问题标题】:Multiple DataContext in wpf MVVM?wpf MVVM中的多个DataContext?
【发布时间】:2014-02-13 16:44:02
【问题描述】:

我有一个窗口,我想绑定来自 2 个不同 DataModel 的数据上下文。我遇到过这个帖子: WPF binding multiple controls to different datacontexts 它在我的代码中不起作用。我不知道您是否必须设置类的“新”实例才能使其工作,但我无法让它显示我的数据。这是一个示例

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

我无法让它正确显示我的文本或我的按钮命令。有什么想法吗?

【问题讨论】:

  • 可能是因为 dataContext 对象的属性等于 null。您也应该分配内部属性,例如 dataContext.FurnaceDataViewModel = something;
  • 您在哪里创建 FurnaceDataViewModel 和 FurnaceDataModel 的新实例?你是吗?....你需要创建它。FurnaceDataContext dataContext = new FurnaceDataContext(); datacontext.FurnaceDataViewModel = new ...(); ..等等

标签: wpf mvvm


【解决方案1】:

你需要实例化内部道具......

    FurnaceDataContext dataContext = new FurnaceDataContext();

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

    DataContext = dataContext;

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 2013-03-08
    • 1970-01-01
    • 2011-02-16
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2010-10-28
    相关资源
    最近更新 更多