通过单击按钮更改页面

问题描述 投票:0回答:1

在我的xaml文件中

 <Button 
    Command="{Binding LoginCommand}"
 </Button>

<Frame
    Grid.Column="1"
    NavigationUIVisibility="Hidden"
     Content="{Binding CurrentPage, UpdateSourceTrigger=PropertyChanged}">
</Frame>

我的视图模型类:

        private readonly LoginPageView _loginPage;  // Page i want to use
        private readonly StartPageView _startPage;
        private Page _currentPage;

        public StartWindowViewModel(LoginPageView loginPage, StartPageView startPage)
        {
            _loginPage = loginPage;
            _startPage = startPage;
            CurrentPage = _startPage;
            LoginCommand = new RelayCommand(OpenLoginPage, _ => true);
        }

        public event PropertyChangedEventHandler PropertyChanged;

        public Page CurrentPage                                  // I'm binding my frame to this property
        {
            get => _currentPage;
            set
            {
                _currentPage = value;
                OnPropertyChanged();
            }
        }

        public RelayCommand LoginCommand { get; set; }

        private void OpenLoginPage(object parameter)
        {
            CurrentPage = _loginPage;
        }

        protected void OnPropertyChanged([CallerMemberName] string name = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }

我想通过单击按钮来更改框架中显示的页面。我不确定是否应该为此使用Frame,但似乎还可以。我没有更新页面的问题,

c# wpf mvvm binding
1个回答
0
投票

我的解决方案似乎不太可能:

© www.soinside.com 2019 - 2024. All rights reserved.