文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[Silverlight入门系列]如何自动隐藏分页控件DataPager

[Silverlight入门系列]如何自动隐藏分页控件DataPager

时间:2011-06-01  来源:Mainz

前面说到了如何用Silverlight默认的分页控件DataPager实现服务器端分页,而不是客户端分页。DataPager一般搭配DataGrid或其它列表控件使用。常常有这样的需求:当内容只有一页或者不满一页的时候,就自动隐藏不显示分页栏。如何在Silverlight中实现呢?前面已经说到了在Silverlight4中Trigger实现的很不完美,不像WPF和Flex中简洁,现在就只能罗嗦的实现自动隐藏DataPager的功能了。

不用Trigger就绑定DataPager的Visibility属性

在Xaml中,给DataPager绑定Visibility属性:

Visibility="{Binding PagerNeeded, Mode=OneWay, Converter={StaticResource BoolToVisibConverter},ConverterParameter=Inverse}

添加IConverter : BoolToVisibilityConverter

写一个ValueConver把bool类型的值(是否只有一页)转换为Visibility格式:

public class BoolToVisibilityConverter : IValueConverter
{
#region "IValueConverter Members"

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (parameter == null)
{
return ((bool)value == true) ? Visibility.Collapsed : Visibility.Visible;
}
else if (parameter.ToString() == "Inverse")
{
return ((bool)value == true) ? Visibility.Visible : Visibility.Collapsed;
}
return false;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}

#endregion
}

注意在Xaml里面要添加Converter的命名空间:

xmlns:converters="clr-namespace:a.b;assembly=a.b"

绑定ViewModel的PagerNeeded属性

我们用MVVM模式,所以在View绑定的ViewModel里面要添加一个PagerNeeded属性,用来绑定到DataPager的Visibility属性:

private bool _PagerNeeded = false;
public bool PagerNeeded
{
get
{
return _PagerNeeded;
}
set
{
if (_PagerNeeded == value) return;

_PagerNeeded
= value;
RaisePropertyChanged(
"PagerNeeded");
}
}

然后在ViewModel中更新DataPager的Context的时候加一行更新PagerNeeded属性就会自动更新界面的Visibility属性了:

PagerNeeded = (_PagerContext != null && _PagerContext.TotalItemCount > 0);

总结

这样,我们就实现了当数据只有一页的时候自动隐藏分页控件DataPager,当数据量超过一页自动显示。够繁琐的,这也正是Silverlight和WPF/Flex复杂的地方,本来就是一个Trigger搞定的事情弄这么复杂。希望Silverlight5能够改进。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载