【问题标题】:Xamarin Forms: Multiple items for a converterXamarin Forms:转换器的多个项目
【发布时间】:2018-08-22 22:21:52
【问题描述】:

我有一个自定义视图,当页面没有值时会显示“无结果”消息。

 <common:NoResults 
    IsVisible="{Binding Details, 
    Converter={ StaticResource EmptyListIsTrueConverter }}"></common:NoResults>

问题是当页面加载时,没有值所以它显示并且不应该显示。

有没有办法将空列表的检查和另一个 Model 属性(如 IsBusy)合并到一个 Converter 中?

【问题讨论】:

  • 我会添加一个属性 IsPageReady 然后 ShowHide 页面本身内的内容。页面准备好后,显示内容。

标签: xamarin xamarin.forms


【解决方案1】:

IsVisible 中,将绑定设置为视图模型中的属性DoneLoadingAndNoValues,默认值为false

当加载完成并且Details 不包含任何值时,将此属性设置为true

ViewModel(实现 INotifyPropertyChangedOnPropertyChanged):

private bool doneLoadingAndNoValues = false; // default is false

public bool DoneLoadingAndNoValues
{
    get { return doneLoadingAndNoValues; }
    set
    {
        doneLoadingAndNoValues= value;
        OnPropertyChanged(nameof(DoneLoadingAndNoValues));
    }
}
...
// Done loading and Details contains no values:
DoneLoadingAndNoValues = true;

XAML:

<common:NoResults IsVisible="{Binding DoneLoadingAndNoValues}" />

【讨论】:

    【解决方案2】:

    我看不到在 XAML 中轻松做到这一点的方法。在你的代码后面试试。

    页面加载完成后,执行一个检查有多少值的函数。如果没有值,请显示您的无值消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2018-08-10
      • 2014-10-07
      • 1970-01-01
      相关资源
      最近更新 更多