我是WPF和MVVM的新手。我的WPF应用程序中的mainWindowView中有Frame。我已将框架源绑定到视图模型的SourcePage属性:
<Frame Name="frame" Content="Frame" Source="{Binding Path=SourcePage, Source={StaticResource WindowViewModel}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
在视图模型中,
public string SourcePage
{
get
{
return _sourcePage;
}
set
{
if (value != null)
{
_sourcePage = value;
OnPropertyChanged("SourcePage");
}
}
}
最初我通过在viewmodel构造函数中设置sourcepage值来加载该框架中的selectTest视图:
public MainWindowViewModel()
{
SourcePage ="Std.User/SelectTest.xaml";
}
现在点击按钮,我需要执行一些数据库操作,之后我想在该帧中加载另一个视图。
嗨科林,谢谢你立即回复。但我尝试过同样的事情并没有按预期工作。这是我的代码
public ICommand StartTestCommand
{
get
{
if (_startTest == null)
{
_startTest = new DelegateCommand(StartTest);
}
return _startTest;
}
}
private void StartTest()
{
MainWindowViewModel mwvm = new MainWindowViewModel();
mwvm.SourcePage = "std.user/ChangePassword2.xaml";
}
答案 0 :(得分:0)
实现这一目标:
ICommand
)公开为属性。这可以绑定到Button
,单击时将执行您的命令。有关示例,请参阅MSDN上的Commanding Overview。SourcePage
属性更改为下一页。视图将自动更新。您可能还希望向视图模型添加IsBusy
布尔属性,在处理数据库活动时该属性为true。您可以使用它来禁用通过绑定查看。