【问题标题】:Xamarin Forms - Bind Label to a CommandXamarin Forms - 将标签绑定到命令
【发布时间】:2018-11-28 00:17:04
【问题描述】:

有没有办法将标签绑定到命令,以便当某个事件(不是触摸事件)发生时,命令会触发?
有没有人做过这样的事情?

【问题讨论】:

  • 标签并不是真正的交互式 UI 元素。你在说什么类型的活动?
  • 必须发生什么事件?
  • 不确定,可能是 Focused 或 TextChanged,因为我会扫描到它。我目前使用一个不可见的条目来扫描它,但问题是它显示了键盘,我根本不希望键盘显示。所以,我想改用标签

标签: xamarin.forms command label


【解决方案1】:

当您使用 MVVM 时,我们可以在后面的代码中触发事件..

请参阅以下示例:

在后面的 Xaml 代码中,重写 OnBindingContextChanged() 方法并在其中注册属性更改事件。因此,每当可绑定属性中的值发生变化时,都会触发此事件。您可以检查此事件中的属性名称并执行您的逻辑。

查看模型声明,

private MyApplicationsViewModel bindingv;

BindingContext 覆盖,

protected override void OnBindingContextChanged()
    {
            base.OnBindingContextChanged();
            bindingv = (this.BindingContext as MyApplicationsViewModel);
            if (bindingv != null)
            {
                bindingv.PropertyChanged += Bindingv_PropertyChanged;
            }
    }

PropertyChanged 事件方法应该在下面,您可以通过检查您之前分配的属性来添加您的逻辑,

 async void Bindingv_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == nameof(bindingv.FirstName)) // your property name which is used in the label binding
        {
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-09
    • 2015-06-21
    • 2016-12-30
    • 1970-01-01
    • 2020-02-10
    • 2017-06-15
    • 2017-08-18
    • 2019-07-30
    相关资源
    最近更新 更多