2009-09-08 9 views
1

J'ai vuePrism - Commandes non mise à feu

<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> 

et un modèle simple de vue - mais les commandes ne semblent le feu - quelqu'un peut me diriger dans la bonne direction s'il vous plaît?

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; } 

} 

Mon module ressemble ...

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 
} 

Répondre

3

Etes-vous sûr que la commande de liaison fonctionne? Si vous exécutez l'application et regardez dans le panneau de sortie de débogage, voyez-vous des avertissements de liaison? Peut-être que le DataContext de votre UserControl n'est pas défini sur votre NavigationMenuViewModel.

Questions connexes