如何解决单击按钮,即一旦调用OrderOut则不会激活
由于某种原因,我无法找到Button.Activated或Button的Action。
代码如下。
在ViewController的构造函数中:
_whenActivated = this.WhenActivated(x => SetupBindings(x));
然后有一个方法:
private void SetupBindings(CompositeDisposable disposables)
{
this.BindCommand(ViewModel,vm => vm.ContinueCommand,v => v._loginButton)
.DisposeWith(disposables);
Observable.FromEventPattern(
h => _cancelButton.Activated += h,h => _cancelButton.Activated -= h)
.Subscribe(x => Cancel(disposables))
.DisposeWith(disposables);
Deactivated.Take(1).Subscribe(_ => _whenActivated?.Dispose());
}
private void Cancel(CompositeDisposable disposables)
{
ViewModel.CancelCommand.Execute().Subscribe().DisposeWith(disposables);
View.Window.OrderOut(null);
Console.WriteLine("Cancel clicked");
}
当我单击_cancelButton时,第一次调用Cancel(...)并被取消顺序/或设置View.Window.IsVisible = false
。但是,当我使用OrderFront
将其恢复时,取消操作将不再被调用。
但是,还有另一个按钮(复选框)可以获取操作,并更改其状态。
我怀疑出于某种原因.Activated
被处置了。这可能是原因吗?那我该怎么预防呢?
或者,我在这里想念什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。