如何通过按下按钮启动新的WPF页面

时间:2013-01-02 17:04:12

标签: c# wpf mvvm binding command

我在使用命令启动新的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();
        }

    }
}

我有另一个问题,我应该编写在命令或viewmodel中打开新页面的代码吗?

1 个答案:

答案 0 :(得分:2)

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

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

然后你的绑定将沿着Command="{Binding MyCommand}"(你不需要UpdateSourceTrigger属性)。

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