c# - Frame.navigate 和 NagivationService 不工作

标签 c# windows-phone-8 mvvm

我不知道为什么 Frame.Navigate 和 NavigationService 不起作用。

这是我的以下代码, 主页.xaml:

<Grid>
    <ContentControl Content="{Binding CurrentViewModel}" />

    <Button
        Command="{Binding ConnexionViewCommand}"
        x:Name="Connexion_button" 
        HorizontalAlignment="Left" 
        Margin="90,308,0,0"
        Content="Login" 
        VerticalAlignment="Top" 
        Width="282"/>
    <Button 
        Command="{Binding InscriptionViewCommand}"
        x:Name="Create_account" 
        HorizontalAlignment="Left" 
        Margin="90,446,0,0"
        Content="Create Account" 
        VerticalAlignment="Top" 
        Width="282"/>
</Grid>

MainViewModel.cs

public class MainViewModel : ViewModelBase
{
    private ViewModelBase _currentViewModel;

    readonly static ConnexionViewModel _ConnexionViewModel = new ConnexionViewModel();
    readonly static InscriptionViewModel _InscriptionViewModel = new InscriptionViewModel();
    readonly static MainPageViewModel _MainPageViewModel = new MainPageViewModel();


    public ViewModelBase CurrentViewModel
    {
        get
        {
            return _currentViewModel;
        }
        set
        {
            if (_currentViewModel == value)
                return;
            _currentViewModel = value;
            RaisePropertyChanged("CurrentViewModel");
        }
    }
    public ICommand ConnexionViewCommand { get; private set; }
    public ICommand InscriptionViewCommand { get; private set; }

    public MainViewModel()
    {
        CurrentViewModel = MainViewModel._MainPageViewModel;
        ConnexionViewCommand =  new RelayCommand(() => ExecuteConnexionViewCommand());
        InscriptionViewCommand = new RelayCommand(() => ExecuteInscriptionViewCommand());
    }

    private void ExecuteConnexionViewCommand()
    {
        Frame.Navigate(typeof(ConnexionView));
        NavigationService.Navigate(new Uri("/ConnexionView.xaml", UriKind.Relative));
        MessageBox.Show("CONNEXION");
    }

    private void ExecuteInscriptionViewCommand()
    {
        Frame.Navigate(typeof(InscriptView));
        NavigationService.Navigate(new Uri("/InscriptionView.xaml", UriKind.Relative));
        MessageBox.Show("REGISTER");
    }

我的 Frame.navigate 出现以下错误:无法将 System.String 转换为 System.Uri。

对于我的 NavigationService.Navigate :属性需要一个对象引用。方法或非静态字段“NavigationService.Navigate (Uri)”

感谢您的帮助。

最佳答案

不能将 Frame.nagivate 和 NavigationService.Navigate 混合在一起。

关于c# - Frame.navigate 和 NagivationService 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105386/

相关文章:

C# Windows 窗体 FormClosing 事件

c# - 使用转换器中的资源

c# - 如何重新启动应用程序?

c# - HttpClient 响应没有得到刷新

c# - 如何使用 DataTemplate + 触发器在 View 之间切换

c# - 在 WPF 上使用 MVVM 模式时,TextBox.LineCount 和 TextBox.GetLastVisibleLineIndex() 始终为 -1

c# - 为测试生成实体对象的常用方法

c# - Application Insights 和失败的请求响应代码

c# - 如何在 Visual Studio 2010 中将 "Object Browser"转换为 "Metadata"以获得 "Go to definition"?

c# - 当 ObservableCollection 触发 CollectionChanged 时,ItemsControl 不会自行更新