我希望框架能够通过点击 Page1 中的按钮导航到 Page2 。
我尝试使用MVVM:
这就是Window XAML。
<Window x:Class="MVVM_Course.Navigation">
<Window.DataContext>
<viewmodel:NavigationViewModel/>
</Window.DataContext>
<Grid>
<Frame x:Name="frame" Content="{Binding Page, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</Window>
Window ViewModel:
public class NavigationViewModel
{
private static object page;
public static object Page { get { return page; } set { page = value; } }
public static void ChangePage(object objpage){Page = objpage;}
public NavigationViewModel()
{
ChangePage(new Page1());
}
}
Page1 XAML:
<Page x:Class="MVVM_Course.Page1">
<Page.DataContext>
<vm:Page1ViewModel/>
</Page.DataContext>
<Grid>
<Button x:Name="btnGoTo2" FontSize="50" Command="{Binding BtnPage2Command}" Content="Go to Page 2"/>
</Grid>
</Page>
Page1 ViewModel:
class Page1ViewModel
{
private ICommand btnPage2Command;
public ICommand BtnPage2Command { get { return btnPage2Command; } set { btnPage2Command = value; } }
public Page1ViewModel()
{
BtnPage2Command = new RelayCommand(GoToPage2);
}
private void GoToPage2(object obj)
{
NavigationViewModel.ChangePage(new Page2());
}
}
当我编译时,框架导航到Page1但是点击了 按钮不会更改页面。使用调试红圈工具 它似乎工作,财产&#34; Page&#34;在NavigationViewModel中 从Page1更改为Page2但是...结果是实际上没有 在UI中发生。