【发布时间】: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 ...(); ..等等