У меня есть VehicleViewModel, который имеет под ViewModel NotesViewModel
public IManageVehicleNotesViewModel NotesViewModel { get; set; }
При первой активации VehicleViewModel я активирую под ViewModel.
NotesViewModel.Activate();
Активация вызывает метод для инициации нескольких команд, я остановился на этом и вызывается.
CreateCommand = new DelegateCommand<object>(OnCreateCommand, CanCreate);
Тем не менее, хотя TextBox и связывают в подчиненном представлении (поэтому DataContext на месте), ни одна из команд не является обязательной - я пытался вызвать RaiseCanExecuteChanged для команд, но они не отключают, не включают и не вызывают методы как и ожидалось.
Я не знаю, имеет ли это отношение (поскольку текстовые поля являются обязательными), но я связываю View и ViewModel, используя ResourceDictionary, так что ...
<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 работают.
Кто-нибудь испытывал что-нибудь подобное? Это порядок я делаю вещи? Любая помощь с благодарностью получена!
Приветствия
Andy