我有一个条目和一个按钮。我希望在按下按钮时调用命令“CallWebServiceCommand”。对该命令的调用需要将Web服务的URL包含为CommandParameter。 BindingContext设置为页面的ViewModel。
按钮的CommandParameter属性需要引用条目的Text属性。在WPF中,我可以这样做:
<Button Text="Call web service" Command="{Binding CallWebServiceCommand}" CommandParameter="{Binding ElementName=url, Path=Text}" />
我知道每个视图不可能有多个绑定上下文,但对于这种特殊情况,这将是一个很好的解决方法吗?
答案 0 :(得分:2)
这有点像黑客,但它过去对我们有用: 使用ViewModel作为视图的“中继”。为此,在ViewModel上创建一个String属性,该属性将文本字段绑定到其Text属性,并将按钮的CommandParameter绑定到此属性。如果为此“parameter”属性引发PropertyChanged事件,该命令将为指定为命令的Action的方法提供更新的值。它肯定是不理想的,但它确实可以作为穷人替代RelativeSource绑定。