我有一个条目和一个按钮。我希望在按下按钮时调用命令“CallWebServiceCommand”。对该命令的调用需要包含 Web 服务的 url 作为 CommandParameter。 BindingContext 设置为页面的 ViewModel。
按钮的 CommandParameter 属性需要引用条目的 Text 属性。在 WPF 中,我可以做这样的事情:
<Button Text="Call web service" Command="{Binding CallWebServiceCommand}" CommandParameter="{Binding ElementName=url, Path=Text}" />
我知道每个 View 不可能有多个绑定(bind)上下文,但是对于这种特殊情况,什么是一个好的解决方法?
最佳答案
这有点像黑客,但它过去对我们有用: 使用 ViewModel 作为 View 的“中继”。为此,请在 ViewModel 上创建一个 String 属性,文本字段将其 Text 属性绑定(bind)到该属性,并将按钮的 CommandParameter 绑定(bind)到该属性。如果为此“参数”属性引发 PropertyChanged 事件,该命令将向指定为该命令的 Action 的方法提供更新的值。这当然不是理想的,但它确实可以作为relativesource绑定(bind)的一个穷人的替代品。
关于xamarin - 在同一 View 下绑定(bind)命令和CommandParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370988/