应用程序目前正在尽可能使用mvvm。当前,应用程序在每个视图中都使用绑定。有一个basecontrol类,该类当前处理属性更改并使用全局属性(ParentProperty)。当我尝试将命令转换为事件时,单击“ event”方法时,我具有的此全局属性为null,但在使用具有经典绑定的命令流时,该属性为null。我已经在后面的代码中设置了上下文,单击按钮即可达到所需的方法。只是我有一个属性,在尝试通过绑定/命令使用xbind时未获取其值。
在大多数情况下,我了解并看到xbind可以用于简单的实例,但事件的一部分却让我挠头。下面的代码是到另一个页面的简单导航事件,我们将在其中添加新记录。该代码可以使用命令正常运行,但是在尝试执行x:bind时,parentproperty为null。
命令和事件之间的一个区别是Model model = new Model();在事件方法是Model model = obj as Model();在命令中。带有一个对象obj参数。
AddEditView control = new AddEditView();
control.ParentProperty = ParentProperty;
Model model = new Model();
if (Model == null)
{
Model = new Model () { };
}
Model.ParentPropertiesType = ParentProperty ;
control.ModelDetailsForAddEdit = Model;
control.PropertyChanged += ModelDetailsForAddEdit_PropertyChanged;
Utility u = new Utility();
NavigationUtility.ShowDetailPage(ParentProperty.Id, u.GetInitializedControl(control, ParentProperty, 0), "View", "Add View");