我想你会有一个该枢纽项目中的收藏夹列表,所以我的做法是将透视项目的可见性绑定到列表的isEmpty属性。
例如,视图将是
<PivotItem
Visibility="{Binding IsNotEmpty,
Converter={StaticResource VisibilityConverter}}"/>
,并在视图模型
ICollectionView ItemsSource;
...
public bool IsNotEmpty(){
return !ItemsSource.IsEmpty;
}
最后,
public class BooleanToVisibilityConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value == null)
return Visibility.Collapsed;
var isVisible = (bool)value;
return isVisible ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var visiblity = (Visibility)value;
return visiblity == Visibility.Visible;
}}
转换器从Useful Converters
临屋获得的转换器t是一个好主意,但是在代码隐藏方面,数据透视项有点难以重新创建(至少需要不合理数量的代码)。不过,我想我可以删除它,存储并在稍后恢复。 – 2012-07-24 10:44:31
你可以在'InitializeComponent'调用后立即删除它。这样用户不应该注意到它。另一种可能性是在“资源”部分中为数据透视表项创建XAML用户界面,并从那里检索它。 – 2012-07-24 11:00:57
是的。但是没有办法“隐藏”它而不是动态添加和删除它? – 2012-07-24 11:06:07