Xamarin.Forms使用ReactiveUI检测空ListView以显示Label

时间:2018-03-07 20:38:11

标签: xamarin.forms reactiveui

我想在ListView为空时显示标签。我尝试了几件事,例如:

[17:29:47]

其中“Items”是项目的Reactive列表:ReactiveList Items 并且“IsVisible”是标签IsVisible =“{Binding IsVisible}”属性的绑定属性。

问题是,当“Items”从空变为非空或反转时,它不会更新。

1 个答案:

答案 0 :(得分:1)

如果您只是在列表中添加或删除项目,则观看Items媒体资源不会导致WhenAnyValue触发。当Items属性本身发生变化时,它将触发。

当您对列表中项目的实际计数发生变化时,您正在寻找的是通知。类似的东西:

Items.CountChanged
    .Select(count => count == 0)
    .DistinctUntilChanged()
    .ToProperty(this, x => x.IsVisible, out _isVisible);

修改 这假定您的IsVisible属性设置如下:

private ObservableAsPropertyHelper<bool> _isVisible;
public bool IsVisible => _isVisible.Value;