2009-09-08 4 views
1

У меня есть видPrism - Команды не розжиг

<UserControl x:Class="Modules.NavigationMenu.Views.NavigationMenuView" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Height="300" Width="300"> 
<StackPanel> 
    <Button Command="{Binding InspectionCommand}">Inspection</Button> 
    <Button Command="{Binding HandheldCommand}">Handheld</Button> 
</StackPanel> 
</UserControl> 

и простая модель представления - но команды не будут казаться огнь - может кто-нибудь мне точку в правильном направлении, пожалуйста?

public class NavigationMenuViewModel : INavigationMenuViewModel 
{ 
    public INavigationMenuView View { get; set; } 

    public NavigationMenuViewModel(IEventAggregator eventAggregator, INavigationMenuView view) 
    { 
     View = view; 
     HandheldCommand = new DelegateCommand<object>(LaunchHandheld); 
     InspectionCommand = new DelegateCommand<object>(LaunchInspection); 
    } 

    private void LaunchInspection(object obj) 
    { 
     MessageBox.Show("Inspection Clicked"); 
    } 


    private void LaunchHandheld(object obj) 
    { 
     MessageBox.Show("Handheld Clicked"); 
    } 

    public DelegateCommand<object> HandheldCommand { get; set; } 
    public DelegateCommand<object> InspectionCommand { get; set; } 

} 

мой модуль выглядит как ...

public class NavigationMenuModule : IModule 
{ 
    private readonly IUnityContainer _container; 
    private readonly IRegionManager _regionManager; 

    public NavigationMenuModule(IUnityContainer container, IRegionManager regionManager) 
    { 
     _container = container; 
     _regionManager = regionManager; 
    } 

    #region Implementation of IModule 

    public void Initialize() 
    { 
     RegisterViewsAndServices(); 
     var viewModel = _container.Resolve<INavigationMenuViewModel>(); 
     _regionManager.Regions[RegionNames.MainMenu].Add(viewModel.View); 

    } 

    #endregion 

    #region Protected Methods 

    protected void RegisterViewsAndServices() 
    { 
     _container.RegisterType<INavigationMenuView, NavigationMenuView>(); 
     _container.RegisterType<INavigationMenuViewModel, NavigationMenuViewModel>(); 
    } 

    #endregion 
} 

ответ

3

Вы уверены, что команда связывания работает? Если вы запустите приложение и посмотрите на панели вывода отладки, вы видите какие-либо обязательные предупреждения? Возможно, DataContext вашего UserControl не настроен на ваш NavigationMenuViewModel.