`
Virgo_S
  • 浏览: 1153798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在 Silverlight 中使用 IValueConverter 实现对绑定数据的格式化

    博客分类:
  • .NET
阅读更多
转载:http://www.cnblogs.com/driverpro/articles/1150836.html
     在使用 Silverlight 对绑定数据进行展现的时候(如 ListBox、DataGrid),经常需要对数据的表现形式进行各式各样的处理,Silverlight 对绑定数据的格式化并不像 ASP.NET 中那么方便,在网上查了一些资料发现我们可以使用 IValueConverter 实现绑定数据的格式化。
     下面我们用 ListBox 做一个例子:
     首先我们先定义一个 MyTime 的类:
public class MyTime
{
    public DateTime Time1 { get; set; }
    public DateTime Time2 { get; set; }
}

     放置一个 ListBox 并且设置绑定:
<ListBox x:Name="MyListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Time1}" Margin="5" Foreground="Red"></TextBlock>
                 <TextBlock Text="{Binding Time2}" Margin="5"></TextBlock>
              </StackPanel>    
         </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

     创建一个 MyTime 的 List 并对其赋值:
List<MyTime> source = new List<MyTime>();
source.Add(new MyTime() { Time1 = DateTime.Now, Time2 = DateTime.Now });
MyListBox.ItemsSource = source;  

     运行结果如下,红色为 Time1,黑色为 Time2:



     下面我们对 Time1 进行格式化,使其只显示 年月日 ,首先我们先继承一个 IValueConverter 类,用于处理对时间的格式化:
using System.Windows.Data;
using System.Globalization;

public class DateTimeConverter: IValueConverter
{
    public object Convert(object value, 
                       Type targetType, 
                       object parameter, 
                       CultureInfo culture)
    {
        DateTime date = (DateTime)value;
        return date.ToShortDateString();
    }

    public object ConvertBack(object value, 
                              Type targetType, 
                              object parameter, 
                              CultureInfo culture)
    {
        string strValue = value.ToString();
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime))
        {
            return resultDateTime;
        }
        return value;
    }
}

     在 XAML 中注册空间命名并声明:
xmlns:local="clr-namespace:SilverlightDemo1"

<UserControl.Resources>
    <local:DateTimeConverter x:Key="DateConverter" />
</UserControl.Resources>

     最后修改 Time1 绑定数据的部分,加入格式化的内容:
<TextBlock Text="{Binding Time1, Converter={StaticResource DateConverter}}" Margin="5" Foreground="Red"></TextBlock>

     运行看结果,是不是发现红色的 Time1 部分只现实年月日了呢:








  • 大小: 5.4 KB
  • 大小: 4.2 KB
分享到:
评论

相关推荐

    Silverlight探秘系列课程_Silverlight2中的控件数据绑定

    在Silverlight中实现数据绑定主要涉及以下步骤: 1. **创建数据源**:定义数据模型或业务逻辑层中的数据结构。 2. **定义绑定关系**:在XAML中使用`Binding`标记扩展或在代码中使用`Binding`类来建立UI元素与数据源...

    Silverlight绑定数据的例子

    你可以使用ICollectionView对数据源进行操作,而不直接影响原始数据。 在实际应用中,你可能还需要处理数据绑定的异常和错误,以及确保性能优化,避免不必要的数据刷新。这可以通过设置ValidationRules、使用...

    SilverLight Grid 数据绑定

    在这种情况下,可以创建自定义的IValueConverter实现,然后在数据绑定中使用它。 6. **数据模板(DataTemplate)** - 当数据源是复杂对象时,DataTemplate可以定义如何将对象呈现为UI元素。这样,每个对象实例可以...

    [其他类别]Silverlight绑定数据的例子_silverlightdatabinding(ASP.NET源码).rar

    1. **Silverlight数据绑定基础**:在Silverlight中,数据绑定允许UI元素(如文本框、列表视图等)自动反映数据源的变化。这简化了UI与后台数据模型之间的交互,开发者无需编写大量代码来同步两者。数据绑定是通过...

    Silverlight绑定数据的例子_aspx开发教程.rar

    本教程将深入探讨如何在Silverlight中实现数据绑定,这是任何UI开发中的核心概念,尤其在ASP.NET开发中更为重要。数据绑定使得UI元素能够自动反映数据源的变化,极大地简化了开发过程。 首先,我们需要理解...

    ASP.NET-[其他类别]Silverlight绑定数据的例子.zip

    2. **数据上下文**:在Silverlight中,控件通常会有一个`DataContext`属性,这是它们进行数据绑定的基础。设置一个控件的`DataContext`为数据源后,该控件及其子控件可以绑定到该数据上下文中的属性。 3. **...

    WPF绑定静态变量的示例代码(二)加上IValueConverter

    接下来,我们可以在XAML中使用`{x:Static}`标记扩展将这个静态变量绑定到TextBox控件: ```xml ``` 这里的`local`前缀是指命名空间别名,确保XAML能正确找到`StaticData`类。 然而,直接绑定静态变量可能无法达到...

    WPF前台代码实现数据绑定,Listview中使用数据模版,数据转换

    在这个主题中,我们将深入探讨如何在WPF中通过前台代码实现数据绑定,特别是在`ListView`控件中使用数据模板和样式,并应用数据转换。 首先,数据绑定是WPF的核心特性之一,它简化了UI与业务逻辑之间的通信。在WPF...

    Silverlight绑定

    在Silverlight中,数据绑定允许开发者将控件(如文本框、按钮等)直接连接到数据模型,这样当数据源发生变化时,UI会自动更新,反之亦然,用户对UI的操作也能影响到数据源。 Silverlight的动态Binding体现在它能...

    silverlight datagrid动态绑定dictionary 列表

    本篇主要讨论如何在Silverlight中使用DataGrid动态绑定Dictionary列表。 首先,Dictionary, TValue&gt;是.NET框架中一个非常实用的集合类,它提供了键值对的存储结构。在Silverlight应用中,我们可能需要展示这种结构...

    c#数据绑定实验c#数据绑定实验

    C#数据绑定是.NET框架中一个关键的概念,它在Windows Forms、WPF(Windows Presentation Foundation)和ASP.NET等环境中广泛使用。数据绑定允许UI(用户界面)组件与数据源进行同步,使得数据的变化能够实时反映在...

    (15)silverlight数据源对象的访问

    Silverlight中的`Binding`类是实现数据绑定的主要工具,可以通过设置`Source`属性指定数据源,`Path`属性指定要绑定的属性路径。此外,还可以设置`Mode`属性来控制数据流向,例如单向或双向绑定。 为了简化数据绑定...

    WPF数据绑定和展现高级应用

    DebugConverter 是指在 WPF 应用程序中对数据绑定的调试功能。DebugConverter 可以在数据绑定过程中抛出异常,以便于调试和排查错误。 控件模板(ControlTemplate) 控件模板是指控件的模板定义,提供了控件的元素...

    windows phone中使用类绑定数据

    在这个场景中,我们讨论的是如何利用类作为数据源来实现数据绑定。以下是详细的知识点解析: 1. **数据绑定的基本概念**: 数据绑定是一种编程范式,允许UI元素与模型对象(类)之间建立连接。当模型数据发生变化...

    简单的数据绑定

    有时候,数据源的原始数据可能不适合直接显示在UI上,这时可以使用`IValueConverter`接口创建自定义转换器,将数据转换为适合显示的格式。 7. **双向数据绑定**: 除了单向数据绑定(从数据源到UI),还可以实现...

    wpf 绑定数据 元素与原素之间 访问数据

    有时,我们需要在数据绑定过程中对数据进行转换,这时可以使用`IValueConverter`接口。创建一个转换器类,并在XAML中指定: ```csharp public class MyConverter : IValueConverter { public object Convert...

    WPF学习数据绑定的例子

    这可以通过在XAML中使用`DataContext="{Binding Source=...}"`或者在代码中使用`element.DataContext = dataSource;`来实现。 3. **绑定控件**:然后,将控件的属性绑定到数据源的特定节点或属性。例如,`[@name='...

    数据绑定Combox

    在实现ComboBox的数据绑定时,我们需要做以下几步: 1. **创建数据源**:这可能是数据库查询的结果、数组或自定义对象集合。确保这些对象具有一个属性,该属性将作为ComboBox显示的文本。 2. **设置ComboBox的...

    数据绑定—wpf

    - **DataSourceProvider** 提供了一个包装,使得数据模型更易于在XAML中使用,减少了代码量。 - **XmlDataProvider** 允许直接绑定到XML文档,方便数据展示。 以上就是关于WPF数据绑定的详细概述,包括其基本概念...

    WPF xaml数据绑定

    7. **转换器(Converter)**:用于在数据源值和绑定目标之间转换的自定义类,通过IValueConverter接口实现。 下面以一个简单的例子来说明XAML数据绑定的使用: ```xml DataContext="{Binding Source={...

Global site tag (gtag.js) - Google Analytics