单击wpf按钮

我有一个5页的WPF应用程序。在我的主窗口,我有5个按钮。我想要做的是单击按钮1在主窗口的框架中打开第1页。我不想使用导航窗口。我应该使用某种绑定吗?我想使用xmal,代码越少越好。在此先感谢我,我正处于学习阶段!     
已邀请:
您可以设置按钮的Click事件处理程序,以便使用各自的页面调用Frame.Navigate(Uri)。 在XAML中:
<Frame Name="myFrame"/>
<Button Name="buttonPage1" Click="OnClickPage1"> 
     Page1
</Button>
然后在代码背后:
void OnClickPage1(object sender, RoutedEventArgs e)
{
    myFrame.Navigate(new Uri("page1"));
}
    
我假设您的评论的逻辑后续是按下按钮2将打开第2页等。 对于所有WPF开发,我的建议是采用MVVM。它将为您提供更多的灵活性和可测试性。 要在MVVM中实现您的问题: 为每个视图创建ViewModel,为主窗口创建一个 每个ViewModel都成为其各自View的DataContext。 在MainWindowViewModel中实现5个ICommand属性,并将按钮上的Command属性绑定到MainWindowViewModel上的每个相应ICommand属性。 在主窗口上,我不确定您是否正在实现Frame控件,但我建议使用ContentControl,将控件上的Content属性绑定到MainWindowViewModel上的Object类型的某些属性。 在执行每个ICommand对象时,您可以将MainWindowViewModel上的content属性设置为该按钮的匹配ViewModel。 在MainWindowView.xaml中,您需要实现一系列将ViewModel映射到View的DataTemplate:
<DataTemplate DataType="{x:Type Page1ViewModel}">
    <AdornerDecorator>
        <views:Page1View DataContext="{Binding}"/>
    </AdornerDecorator>
</DataTemplate>
我建议您考虑使用众多可用的MVVM框架之一。 MVVMFoundation - 重量轻,最低限度的实现 MVVMLight - 更重的框架 Caliburn - 似乎有很多额外的功能 实现一个完整的框架可能看起来像是一项额外的工作,但从长远来看,它是值得的,更可测试,更易于维护。     

要回复问题请先登录注册