Xamarin形式:转换器的多个项目

时间:2018-08-17 19:22:04

标签: xamarin xamarin.forms

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

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

问题是页面正在加载时,没有值,因此它不应该显示。

是否可以将对空列表的检查和另一个模型属性(例如IsBusy)组合到一个Converter中?

2 个答案:

答案 0 :(得分:1)

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

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

ViewModel(通过INotifyPropertyChanged实现OnPropertyChanged

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}" />

答案 1 :(得分:0)

我找不到在XAML中轻松实现此目的的方法。在后面的代码中尝试一下。

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