【发布时间】:2010-11-28 19:37:50
【问题描述】:
我有一个 VehicleViewModel,它有一个 NotesViewModel 的子 ViewModel
public IManageVehicleNotesViewModel NotesViewModel { get; set; }
在第一次激活 VehicleViewModel 时,我会激活子 ViewModel。
NotesViewModel.Activate();
激活调用一个方法来初始化一些命令,我已经打破了这个和它被调用的地方。
CreateCommand = new DelegateCommand<object>(OnCreateCommand, CanCreate);
但是,尽管 TextBox 绑定在子视图上(因此 DataContext 就位),但没有任何命令绑定 - 我尝试在命令上调用 RaiseCanExecuteChanged,但它们没有禁用、启用或调用方法正如预期的那样。
我不知道它是否相关(因为 TextBoxes 是绑定的),但我正在使用 ResourceDictionary 关联 View 和 ViewModel ...
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:v="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Views"
xmlns:vm="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Model">
<DataTemplate DataType="{x:Type vm:ManageVehicleViewModel}">
<v:ManageVehicleView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ManageVehicleNotesViewModel}">
<v:ManageVehicleNotesView />
</DataTemplate>
</ResourceDictionary>
顶级 VehicleViewModel 上的命令有效。
有没有人经历过这样的事情?是我做事的顺序吗?感谢您的帮助!
干杯,
安迪
【问题讨论】:
标签: wpf mvvm binding prism command