как использовать триггеры событий в MVVM WPF - PullRequest
0 голосов
/ 28 марта 2019

я хотел бы поднять клавишу события, когда я что-то набираю в своем текстовом поле, мои команды просто посчитают, сколько времени потребуется для ввода ввода

это мой xaml с текстовым полем:

<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Texts.mydata,UpdateSourceTrigger=PropertyChanged}" FontWeight="SemiBold">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="KeyDown">
            <cmd:EventToCommand Command="{Binding LigneAddCommand}" PassEventArgsToCommand="True" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TextBlock>

на мой взгляд модель вот мой relayCommand:

private RelayCommand _ligneAddCommand;
public RelayCommand LigneAddCommand => _ligneAddCommand = _ligneAddCommand ?? new RelayCommand(LigneAddKeyDownEventHandle, LignaAddCanBeExecuted);

protected virtual bool LignaAddCanBeExecuted() => true;

protected virtual void LigneAddKeyDownEventHandle()
{
    if (timer != null)
        timer.Stop();

    timer = new System.Windows.Threading.DispatcherTimer();
    timer.Tick += (s, args) =>
    {
        //fetch data here...
        timer.Stop();
    };
    timer.Interval = TimeSpan.FromMilliseconds(50);
    timer.Start();
}

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

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