2

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

    }
}

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

4

1 回答 1

2

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

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

然后您的绑定将遵循Command="{Binding MyCommand}"(您不需要 UpdateSourceTrigger 属性)。

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

于 2013-01-02T17:15:39.327 回答