C# ReactiveCommand CanExecute未更新按钮

C# ReactiveCommand CanExecute未更新按钮,c#,wpf,system.reactive,reactiveui,commandbinding,C#,Wpf,System.reactive,Reactiveui,Commandbinding,我已经设置了处理clientsoftware到serversoftware连接的业务逻辑 BL封装在此接口中: public interface IServerConnectionLogic { IObservable<bool> Connected { get; } Task Connect(); //... } 该命令绑定到我的UI-XAML中的一个按钮 按下按钮时,点击订阅的lamda并调用“连接”方法。 在可观察范围内,“已连接”设置为“真” 此外

我已经设置了处理clientsoftware到serversoftware连接的业务逻辑

BL封装在此接口中:

public interface IServerConnectionLogic
{
    IObservable<bool> Connected { get; }
    Task Connect();

    //...
}
该命令绑定到我的UI-XAML中的一个按钮

按下按钮时,点击订阅的lamda并调用“连接”方法。 在可观察范围内,“已连接”设置为“真”

此外,还会命中ReactiveCommand构造函数的“CanExecute”参数中的lambda

但用户界面没有更新。我本以为按钮会被禁用,因为可观察的“已连接”变为“true”,而“Select”语句会反转我的布尔值

我用WpfToolkit中的“RibbonButton”和一个“普通”按钮试过了,但都没有更新

同一IObservable也绑定到成员字段:

m_ServerConnected = new ObservableAsPropertyHelper<bool>(ServerConnectionLogic.Connected, _ => raisePropertyChanged("ServerConnected"));
m_ServerConnected=newobserveAsperablePropertyHelper(ServerConnectionLogic.Connected,=>raisePropertyChanged(“ServerConnected”);
而“m_ServerConnected”通过属性绑定到复选框(用于测试)。该复选框工作正常,因此可观察对象必须工作


有人知道我的问题是什么吗?

如何实现
连接
可能是因为订阅的副作用?当前“连接”只是将IObservable设置为true:public virtual Task Connect(){m_Connected.OnNext(true);return Task.FromResult(true)}我不希望这里有副作用。。。
m_ServerConnected = new ObservableAsPropertyHelper<bool>(ServerConnectionLogic.Connected, _ => raisePropertyChanged("ServerConnected"));