Призма — команды не срабатывают

у меня есть вид

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

person Community    schedule 08.09.2009    source источник


Ответы (1)


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

person Drew Noakes    schedule 08.09.2009