小编Lon*_*aco的帖子

无法使用Prism从回调方法内导航

我有一个使用WPF和Prism的小应用程序.我有我的shell和两个模块.我可以在"正常时尚"(例如点击按钮)之间成功地在它们之间导航,因此我知道它们已正确连接导航.但是,如果我执行一些在完成时触发事件的异步操作,我无法从该事件处理程序内部导航.我尝试的最后一件事是使用Event Aggregation将事件发布回UI线程,但它仍然没有导航.事件的订阅者成功获取事件并触发RequestNavigate(...),但UI不会更新.

现在,一些代码:我的第一个模块的viewmodel LoginModule:

public class LoginViewModel : ViewModelBase, ILoginViewModel, INavigationAware
{
    ...

    [ImportingConstructor]
    public LoginViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator)
    {
        _regionManager = regionManager;
        _container = container;
        _eventAggregator = eventAggregator;
    }

    private DelegateCommand _Login;
    public DelegateCommand Login
    {
        get
        {
            if (_Login == null)
                _Login = new DelegateCommand(() => LoginHandler());
            return _Login;
        }
    }
    private void LoginHandler()
    {
        _client = new JabberClient();
        _client.Server = "gmail.com";
        _client.User = Username;
        _client.Password = Password;

        ...

        _client.OnAuthenticate += client_OnAuthenticate;
        _client.Connect();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

c# navigation wpf prism module

10
推荐指数
1
解决办法
871
查看次数

标签 统计

c# ×1

module ×1

navigation ×1

prism ×1

wpf ×1