【问题标题】:Binding a command and a CommandParameter in the same view在同一个视图中绑定命令和命令参数
【发布时间】:2015-04-06 21:40:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    这有点小技巧,但过去它对我们有用: 使用 ViewModel 作为视图的“中继”。为此,请在 ViewModel 上创建一个 String 属性,文本字段将其 Text 属性绑定到该属性,并将按钮的 CommandParameter 绑定到此属性。如果您为此“参数”属性引发 PropertyChanged 事件,则该命令会将更新后的值提供给指定为该命令的 Action 的方法。这当然不理想,但它确实可以替代 RelativeSource 绑定。

    【讨论】:

    • 我没想过尝试这个...但看起来这可能是最好的解决方案,只要不支持多个 BindingContext 或 ElementName !非常感谢!
    猜你喜欢
    • 2015-07-29
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    相关资源
    最近更新 更多