我在使用命令启动新的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中打开新页面的代码吗?
答案 0 :(得分:2)
为了更清楚,您将绑定到通用(POCO)类。通常,您必须绑定到实现ICommand
接口的类。搜索RelayCommand
或DelegateCommand
以查看多个实施。现在,完成后,您将设置一个类(通常是ViewModel类),该类将用作WPF窗口的DataContext。然后,您将在ViewModel上公开一个公开命令的属性(即。)
public ICommand MyCommand
{
get
{
return this.myCommand;
}
}
然后你的绑定将沿着Command="{Binding MyCommand}"
(你不需要UpdateSourceTrigger属性)。
如果这仍然令人困惑,请随时跟进其他问题,但我建议您阅读有关MVVM pattern的更多信息。