Как связать команду Close с кнопкой

Этот ответ относится к современным настройкам (машинописный текст 2.x, веб-пакет> 2.x)

вам НЕ нужно устанавливать @ types / node (который является узлом .js вводит и не имеет отношения к внешнему коду, фактически усложняя такие вещи, как setTimout, различное возвращаемое значение и т. д.

вам НЕОБХОДИМО установить @ types / webpack-env

npm i -D @types/webpack-env

, который выдает сигнатуры времени выполнения, которые есть у веб-пакета (включая require и require.ensure и т. Д.)

также убедитесь, что ваш tsconfig.json не имеет установленного массива 'types' ->, который будет сделайте так, чтобы он принимал все определения типов в вашей папке node_modules / @ types. Если вы хотите ограничить поиск типов, вы можете установить для свойства typeRoot значение node_modules / @ types

62
задан wonea 20 February 2017 в 11:42
поделиться

2 ответа

Я думаю, что в реальных сценариях простой обработчик кликов, вероятно, лучше, чем чрезмерно сложные системы на основе команд, но вы можете сделать что-то вроде этого:

используя RelayCommand из этой статьи http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

public class MyCommands
{
    public static readonly ICommand CloseCommand =
        new RelayCommand( o => ((Window)o).Close() );
}
<Button Content="Close Window"
        Command="{X:Static local:MyCommands.CloseCommand}"
        CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, 
                           AncestorType={x:Type Window}}}"/>
49
ответ дан 24 November 2019 в 16:31
поделиться

Все, что нужно, - это немного XAML ...

<Window x:Class="WCSamples.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.CommandBindings>
        <CommandBinding Command="ApplicationCommands.Close"
                        Executed="CloseCommandHandler"/>
    </Window.CommandBindings>
    <StackPanel Name="MainStackPanel">
        <Button Command="ApplicationCommands.Close" 
                Content="Close Window" />
    </StackPanel>
</Window>

И немного C # ...

private void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
    this.Close();
}

(адаптировано из этой статьи MSDN )

71
ответ дан 24 November 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: