silverlight 使用IValueConverter 转换

在绑定数据中 有时候我们需要转换相关数据类型 silverlight提供了一个System.Windows.Data.IValueConverter接口

它提供两个方法 Convert和ConvertBack  前者是资源到目标元素时转换  后者是目标到资源时转换

先创建一个类型

 public class DataTimeConvert : System.Windows.Data.IValueConverter

    {



        // 参数:

        //   value:

        //     正传递到源的目标数据。

        //

        //   targetType:

        //     源对象需要的数据的 System.Type。

        //

        //   parameter:

        //     要在转换器逻辑中使用的可选参数。

        //

        //   culture:

        //     转换的区域性。

        //

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

        {

            return  (value).ToString();

        }

        // 参数:

        //   value:

        //     正传递到源的目标数据。

        //

        //   targetType:

        //     源对象需要的数据的 System.Type。

        //

        //   parameter:

        //     要在转换器逻辑中使用的可选参数。

        //

        //   culture:

        //     转换的区域性。

        //

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

        {

            return value.ToString();

        }

然后xaml代码

 

<UserControl x:Class="TemplateConvert.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:convert="clr-namespace:TemplateConvert"

    mc:Ignorable="d"

    d:DesignHeight="300" d:DesignWidth="400">

    <UserControl.Resources>

        <convert:TextChange x:Key="txtChange"></convert:TextChange>

    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">

        <ListBox x:Name="lblist">

            <ListBox.ItemTemplate>

                <DataTemplate>

                    <TextBlock Text="{Binding Title,Converter={StaticResource txtChange}}" x:Name="tbTest" ></TextBlock> 

                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>

       

        </Grid>

</UserControl>

 

 

你可能感兴趣的:(silverlight)