【问题标题】:label Hide and show using xaml and mvvvm在 mvvm 中使用 xaml 标签隐藏和显示
【发布时间】:2017-09-03 19:23:12
【问题描述】:

如何标记隐藏和显示如果管理员登录然后显示一个标签,否则标签被隐藏{如何解决}?

xaml 代码

 <StackLayout IsVisible="{Binding IsAdminTrue}">
<Label Text="is_professional"></Label>
 </StackLayout>

ViewModel 代码

public void IsProfessional()
    {
        if (CurrentUser.IsAdmin!= true)
        {
            IsAdminTrue= false;
        }
        else
        {
            IsAdminTrue= true;
        }
    }

【问题讨论】:

  • 您想隐藏标签或显示是或否,因为是专业的?为什么要更改堆栈布局的可见性?您需要将其更改为标签吗?
  • IsAdminTrue 的代码是什么(顺便说一句坏名声)?您是否在视图模型上实现 INotifyPropertyChanged?您是否在 IsAdminTrue 设置器上发送 PropertyChanged 事件?

标签: c# xaml xamarin mvvm xamarin.android


【解决方案1】:
public void IsProfessional()
{
    if (CurrentUser.IsAdmin!= true)
    {
            lblNo.Visibility= Visibility.Visible;
    }
    else
    {
            lblNo.Visibility = Visibility.Hidden;
    }
}

这里 lblNo 是一个标签。

【讨论】:

    【解决方案2】:

    您应该在 Label 上设置 Visibility 属性,而不是 StackLayout。您可以将 IsAdminTrue 更改为 IsAdminVisible(Visibility 类型),也可以使用 BooleanToVisibility 转换器。第二个选项通常是首选方法。

    当然,如果 IsAdminTrue 不引发 PropertyChanged,这一切都无关紧要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多