是否可以仅在单击按钮时使用XAML启动另一个视图?

时间:2010-01-15 20:44:40

标签: c# wpf xaml binding

我知道WPF中的Binding是一个非常强大的功能,但我不知道这是否可行。

我的窗口由一个非常简单的网格组成:

<Grid Height="593" Width="800" >
    <Grid.RowDefinitions>
        <RowDefinition Height="109*" />
        <RowDefinition Height="484*" />
    </Grid.RowDefinitions>
    <Grid.Background>
        <ImageBrush ImageSource="MenuBackground.png" />
    </Grid.Background>

    <Label Grid.Row="0" 
           HorizontalAlignment="Center" VerticalAlignment="Center" 
           FontSize="36" Foreground="Gray"
           Margin="0,15,0,0">
        Bindings Sandbox
    </Label>

    <Grid Grid.Row="1" Width="300" Height="200">
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>

        <Button Grid.Row="0" Margin="5" FontSize="16">Slider and Progress Bar</Button>
        <Button Grid.Row="1" Margin="5" FontSize="16">Button2</Button>
    </Grid>
</Grid>

我想知道是否可以调用另一个窗口(假设在View1.xaml中定义)而不用路由Button.Click incode-behind?

1 个答案:

答案 0 :(得分:1)

你有几个选择。

从技术上讲,你可以制作一个符合你想要的attached property。这将使用代码,但不会在后面的代码中使用,因此它提供了一个更可重用的选项。

或者,您可以使用Command而不是事件处理程序。这使您可以绑定到命令,并将逻辑移动到DataContext中。 (这,顺便说一句,是使MVVM模式正常工作的“工具”之一。)Command可以打开你的新视图。