在同一视图中绑定命令和CommandParameter

时间:2015-02-06 17:05:27

标签: xamarin xamarin.forms

我有一个条目和一个按钮。我希望在按下按钮时调用命令“CallWebServiceCommand”。对该命令的调用需要将Web服务的URL包含为CommandParameter。 BindingContext设置为页面的ViewModel。

          按钮的CommandParameter属性需要引用条目的Text属性。在WPF中,我可以这样做:

<Button Text="Call web service" Command="{Binding CallWebServiceCommand}" CommandParameter="{Binding ElementName=url, Path=Text}" />

我知道每个视图不可能有多个绑定上下文,但对于这种特殊情况,这将是一个很好的解决方法吗?

1 个答案:

答案 0 :(得分:2)

这有点像黑客,但它过去对我们有用: 使用ViewModel作为视图的“中继”。为此,在ViewModel上创建一个String属性,该属性将文本字段绑定到其Text属性,并将按钮的CommandParameter绑定到此属性。如果为此“parameter”属性引发PropertyChanged事件,该命令将为指定为命令的Action的方法提供更新的值。它肯定是不理想的,但它确实可以作为穷人替代RelativeSource绑定。