c# - 是否可以仅在单击按钮时使用 XAML 启动另一个 View ?

标签 c# wpf xaml binding

我知道 WPF 中的绑定(bind)是一个非常强大的功能,但我不知道这是否可行。

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

<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>

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

最佳答案

这里有几个选项。

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

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

关于c# - 是否可以仅在单击按钮时使用 XAML 启动另一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074661/

相关文章:

wpf - 如何通过行和列索引以编程方式访问 WPF 网格中的控件?

html - 将 Xaml 转换为 html5

c# - 在流文档中跨列跨文本

c# - 在 WinForms 中显示 gstreamer-sharp 视频流

c# - 如何删除该实例中的类实例

c# - Visual Studio 2010 Express C# 限制

wpf - 如何获取 DataTemplate 的逻辑树

c# - 如何在 ASP.NET 5/MVC 6 中创建响应消息并向其添加内容字符串

wpf - 让 Sub 在 WPF 启动时运行

wpf - WPF应用程序开始最大化,但屏幕分辨率与显示不匹配