我有一个自定义视图,当页面没有任何值时,该视图会显示“无结果”消息。
<common:NoResults
IsVisible="{Binding Details,
Converter={ StaticResource EmptyListIsTrueConverter }}"></common:NoResults>
问题是页面正在加载时,没有值,因此它不应该显示。
是否可以将对空列表的检查和另一个模型属性(例如IsBusy)组合到一个Converter中?
答案 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中轻松实现此目的的方法。在后面的代码中尝试一下。
页面加载完成后,执行一个检查有多少个值的函数。如果没有值,请显示“无值”消息。