我发现 WPF 命令参数是一个限制。也许这表明我将它们用于错误的目的,但在我报废并采取不同的策略之前,我仍在尝试。
我组装了一个异步执行命令的系统,但是很难使用任何需要数据输入的东西。我知道 WPF 命令的一种常见模式是传入this
. 但是this
对于异步命令根本不起作用,因为所有依赖项属性都无法访问。
我最终得到这样的代码:
<Button Command="{Binding ElementName=servicePage, Path=InstallServiceCommand}">
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource InstallServiceParameterConverter}">
<MultiBinding.Bindings>
<Binding ElementName="servicePage" Path="IsInstalled"/>
<Binding ElementName="localURI" Path="Text"/>
<Binding ElementName="meshURI" Path="Text"/>
<Binding ElementName="registerWithMesh" Path="IsChecked"/>
</MultiBinding.Bindings>
</MultiBinding>
</Button.CommandParameter>
</Button>
并且还需要 InstallServiceParametersConverter 类(加上 InstallServiceParameters)。
任何人都看到了一种明显的改进方法?