最近在学习Rahul的《Silverlight and .NET RIA Services - Step By Step》系列,觉得很实用,记录一些简单技巧。
从数据库或者其它数据源读取数据加载到页面中,难免会有时间延迟,提供加载标志是很有必要的。
首先,增加一个处理类,实现IValueConverter接口,返回一个控件的是否可见属性。
public class BooleanToVisibility : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return ((bool)value == true ? Visibility.Visible : Visibility.Collapsed); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }
然后,在xaml文件中做自己的事啦。
1、增加处理类命名空间的定义
xmlns:helper="clr-namespace:MySample.Helpers"
2、在<Grid x:Name="LayoutRoot">里面定义一个可供后面使用的key
<Grid.Resources> <helper:BooleanToVisibility x:Key="BoolToVisibility" /> </Grid.Resources>
3、接着,增加一个TextBlock来显示消息,比如Loading...
<TextBlock Height="49" Name="textBlock1" Text="Loading..." VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="32" Visibility="{Binding ElementName=source, Path=IsLoadingData, Mode=TwoWay, Converter={StaticResource BoolToVisibility}}" />
OK了~