Avalonia中点击子窗口按钮无法隐藏自身的问题求助(多视图绑定同一ViewModel场景)
Avalonia中点击子窗口按钮无法隐藏自身的问题求助(多视图绑定同一ViewModel场景)
大家好,我遇到一个Avalonia的绑定问题,想请教下各位开发者:
我现在有两个视图绑定到同一个MainWindowViewModel。在主窗口的ViewModel里,我创建并打开了第二个窗口(SettingsWindow)。现在我想实现点击第二个窗口上的按钮来隐藏它自己,但遇到了麻烦——把Hide()逻辑绑定到子窗口的按钮上时完全没效果,可如果把同一个命令绑定到主窗口的按钮上,就能正常隐藏子窗口。
具体的代码情况如下:
MainWindowViewModel中的相关代码
首先是隐藏窗口的方法:
public void DeclineSettingsChanges() { SW.Hide(); }
然后是响应式命令的定义与初始化:
private ReactiveCommand<Unit, Unit> DeclineSettingsChangesCommand { get; } // 在构造函数中创建命令 DeclineSettingsChangesCommand = ReactiveCommand.Create(DeclineSettingsChanges);
SettingsWindow.axaml中的按钮绑定
<Button Content="Cancel" Command="{Binding DeclineSettingsChangesCommand, Source={StaticResource MainWindowViewModel}}"/>
主窗口MainWindow.axaml里用完全一样的绑定方式,按钮就能正常隐藏SettingsWindow,可子窗口自己的按钮就是没反应。有没有朋友知道这是哪里出问题了?该怎么调整才能让子窗口的按钮触发隐藏自身的操作呢?
备注:内容来源于stack exchange,提问作者DarkMessiah




