Используя Кнопку для навигации к другой Странице в NavigationWindow

Вы могли бы взять на себя причудливую деструктуризацию , взяв объект с нулевым ключом (только первый элемент массива) и затем свойство value.

var array = [{ label: "1", value: "11" }, { label: "2", value: "22" }, { label: "3", value: "33" }, { label: "4", value: "44" }],
    { 0: { value } } = array;
    
console.log(value);

6
задан Dave Clemmer 29 July 2011 в 17:44
поделиться

3 ответа

В соответствии с документацией , только DocumentViewer и FlowDocumentViewer реализуют эту команду специально. Вам нужно будет либо найти команду для навигации, которую реализует NavigationWindow , либо настроить CommandBinding для этой команды и обработать ее самостоятельно.

4
ответ дан 10 December 2019 в 00:44
поделиться

Вы захотите использовать NavigationService вашего NavigationWindow следующим образом:

XAML:

    <Button HorizontalAlignment="Right" Name="continueButton" Width="75" Margin="0,0,8,11" Height="23" VerticalAlignment="Bottom" Click="continueButton_Click">
        Continue
    </Button>

C #:

    private void continueButton_Click(object sender, RoutedEventArgs e)
    {
        this.NavigationService.GoForward();
        //or
        this.NavigationService.Navigate("Second.xaml")
    }

С любым из этого вы можете использовать this , я показываю только NavigationService здесь для ясности

2
ответ дан 10 December 2019 в 00:44
поделиться

В XAML:

<Button Command="{x:Static Views:Commands.NavigateHelp}" Content="Help"/>

В Views (у нас есть файл Commands.cs, который содержит все это):

public static RoutedCommand NavigateHelp = new RoutedCommand();

В конструкторе Page вы можете соединить эти два:

CommandBindings.Add(new CommandBinding(Commands.NavigateHelp, NavigateHelpExecute));

NavigateHelpExecute может быть в коде позади (что мы и делаем), подключаться к обработчику событий ViewModel или чему угодно. Прелесть этого в том, что вы можете отключить другую навигацию следующим образом:

CommandBindings.Add(new CommandBinding(NavigationCommands.Refresh, null));

Надеюсь, это поможет.

4
ответ дан 10 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

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