代码之家  ›  专栏  ›  技术社区  ›  Ian Vink

Xamarin表单:转换器的多个项

  •  1
  • Ian Vink  · 技术社区  · 6 年前

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

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

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

    有没有办法将检查空列表和另一个模型属性(如IsBusy)合并到一个转换器中?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Benl    6 年前

    IsVisible 将绑定设置为属性 DoneLoadingAndNoValues false .

    将此属性设置为 true Details 不包含任何值。

    视图模型(实现 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;
    

    <common:NoResults IsVisible="{Binding DoneLoadingAndNoValues}" />
    
        2
  •  0
  •   jamesfdearborn    6 年前

    在XAML中,我看不到一种简单的方法。在你的代码后面试试。

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