Триггер взаимодействия WPF IsKeyboardFocusWithinChanged не срабатывает - PullRequest
0 голосов
/ 22 сентября 2018

Событие триггера взаимодействия «IsKeyboardFocusWithinChanged» не срабатывает, я поставил точку останова в команде, но ничего не происходит.Триггер находится внутри UserControl.Команда работает как шарм, но, как я уже сказал, она не стреляет.В коде с этим событием все работает.XAML:

<UserControl x:Class="PixiEditor.Views.MenuButton"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:PixiEditor.Views"
         xmlns:vm="clr-namespace:PixiEditor.ViewModels"
         xmlns:helpers="clr-namespace:PixiEditor.Helpers.Behaviours"
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
         mc:Ignorable="d" 
         d:DesignHeight="330" d:DesignWidth="200" x:Name="menuButton" DataContext="{DynamicResource MenuButtonViewModel}">
<UserControl.Resources>
    <vm:MenuButtonViewModel x:Key="MenuButtonViewModel"/>
</UserControl.Resources>
<i:Interaction.Triggers>
    <i:EventTrigger EventName="IsKeyboardFocusWithinChanged">
        <i:InvokeCommandAction Command="{Binding CloseListViewCommand}"/>
    </i:EventTrigger>
</i:Interaction.Triggers>
<StackPanel Name="MainStackPanel">

    <Button Content="{Binding ElementName=menuButton,Path=Text}" Style="{StaticResource MenuButton}" HorizontalAlignment="Left" Command="{Binding OpenListViewCommand}"/>
    <ListView Visibility="{Binding ListViewVisibility}" Style="{StaticResource MenuListViewStyle}">
        <ContentPresenter Content="{Binding Item, ElementName=menuButton}"/>
        </ListView>
</StackPanel>

ViewModel

using PixiEditor.Helpers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace PixiEditor.ViewModels
{
class MenuButtonViewModel : ViewModelBase
{
    public RelayCommand OpenListViewCommand { get; set; }
    public RelayCommand CloseListViewCommand { get; set; }
    private Visibility _listViewVisibility;

    public Visibility ListViewVisibility
    {
        get { return _listViewVisibility; }
        set { _listViewVisibility = value; RaisePropertyChanged("ListViewVisibility"); }
    }


    public MenuButtonViewModel()
    {
        OpenListViewCommand = new RelayCommand(OpenListView);
        CloseListViewCommand = new RelayCommand(CloseListView);
        ListViewVisibility = Visibility.Hidden;
    }

    private void OpenListView(object parameter)
    {
        ListViewVisibility = (ListViewVisibility == Visibility.Hidden) ? Visibility.Visible : Visibility.Hidden;
    }

    private void CloseListView(object parameter)
    {
        ListViewVisibility = Visibility.Hidden;
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...