【发布时间】:2015-09-29 09:50:25
【问题描述】:
我有这段代码:
public partial class MainWindow : Window
{
public CViewModel ViewModel { get; set; }
public MainWindow()
{
try
{
InitializeComponent(); // create VM first time
try
{
ViewModel = new CViewModel(); // create VM 2nd time
ViewModel.topGrid = TopGrid;
在相应的 XAML 中我有这个:
<Window
.....
xmlns:c="clr-namespace:CCalc"
....
x:Class="CCalc.MainWindow"
....>
<Window.DataContext>
<c:CViewModel />
</Window.DataContext>
我可以看到 CViewModel 实例被创建了两次:一次是由于 InitializeComponent 而由 XAML 代码创建的,另一次是由 new CViewModel() 创建的。 所以我删除了那行代码。但是我该如何设置 topGrid? 换句话说:作为我的数据上下文的视图模型的名称是什么?
【问题讨论】:
-
为什么需要在代码隐藏中访问视图模型?
-
因为稍后在程序中我做了一个“topGrid.BindingGroup.CommitEdit();”