【问题标题】:Change page by button click通过按钮单击更改页面
【发布时间】:2020-04-28 16:22:36
【问题描述】:

在我的 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】:

    我的解决方案似乎不是最好的:

    <Frame
        Grid.Column="1"
        NavigationUIVisibility="Hidden"
        Source="{Binding PageName}">
    </Frame>
    
    public string PageName
    {
        get => _pageName + ".xaml";
        set
        {
            _pageName = value;
            OnPropertyChanged();
        }
    }
    

    我实际上并不喜欢这种解决方法,所以如果有人能提供更好的方法,我会很高兴。

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 2020-10-18
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 2013-07-12
      • 1970-01-01
      相关资源
      最近更新 更多