【问题标题】:How to start a new WPF page by pressing a button如何通过按下按钮启动新的 WPF 页面
【发布时间】:2012-12-17 01:21:13
【问题描述】:

我在使用命令启动新的 WPF 页面时遇到问题。我尝试通过编写使用新的 WPF 窗口,但没有任何反应。

我看不到错误?程序运行正常,但是当按下按钮时,什么也没有发生

我的 XAML。

<Button 
            Command="{Binding Path=OpenCrudCommand, UpdateSourceTrigger=PropertyChanged}" 
            Content="CRUD" 
            HorizontalAlignment="Left" 
            Margin="10,352,0,0" 
            VerticalAlignment="Top" 
            Width="83"/>

我的 OpenCrudCommand。

如您所见,我尝试使用新的 WPF 窗口,而不是 WPF 页面,但它也不起作用。

第 1 页是 WPF 窗口窗体,第 2 页是 WPF 页面窗体

{
    class OpenCrudCommand
    {
        ProductViewModel _avm;

         public OpenCrudCommand(ProductViewModel avm)
        {
            _avm = avm;
        }



        public void Execute(object parameter)
        {
            var hej = new Page2();
            hej.Show();
        }

    }
}

我还有一个问题,我应该在命令中还是在视图模型中编写打开新页面的代码?

【问题讨论】:

    标签: c# wpf mvvm binding command


    【解决方案1】:

    为了更清楚起见,您将绑定到一个泛型 (POCO) 类。通常,您必须绑定到实现ICommand 接口的类。搜索 RelayCommandDelegateCommand 以查看多个实现。现在一旦完成,您将设置一个类(通常是 ViewModel 类),该类将用作 WPF 窗口的 DataContext。然后,您将在 ViewModel 上公开一个属性,该属性会公开命令(即)

    public ICommand MyCommand
    {
         get
         {
              return this.myCommand;
         }
    }
    

    那么您的绑定将沿着Command="{Binding MyCommand}" 的行(您不需要 UpdateSourceTrigger 属性)。

    如果这仍然令人困惑,请随时跟进其他问题,但我建议阅读更多有关 MVVM pattern 的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多