导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

IValueConverter.Convert 方法

2013/12/13

在将源数据传递到目标以在 UI 中显示之前,对源数据进行修改。

Namespace:  System.Windows.Data
程序集:  System.Windows(位于 System.Windows.dll 中)

Object Convert(
	Object value,
	Type targetType,
	Object parameter,
	CultureInfo culture
)

参数

value
类型: System.Object
正传递到目标的源数据。
targetType
类型: System.Type
目标依赖项属性需要的数据的 Type
parameter
类型: System.Object
要在转换器逻辑中使用的可选参数。
culture
类型: System.Globalization.CultureInfo
转换的区域性。

返回值

类型: System.Object
要传递到目标依赖项属性的值。

按以下顺序确定区域性:

  1. 转换器在 Binding 对象上查找 ConverterCulture 属性。

  2. 如果 ConverterCulture 值为 null,则使用 Language 属性的值。

如果 Convert 方法引发异常,则绑定引擎忽略此异常并允许异常向上传递。

如果返回 UnsetValue,则目标属性设置为其默认值。

下面的示例演示如何使用 parameterculture 参数实现 Convert 方法。


using System;
using System.Collections.ObjectModel;
using System.Windows.Controls;
using System.Windows.Data;
using Microsoft.Phone.Controls;

namespace ConverterParameterEx
{
    public partial class Page : PhoneApplicationPage
    {

        public ObservableCollection<Recording> MyMusic =
            new ObservableCollection<Recording>();

        public Page()
        {
            InitializeComponent();

            // Add items to the collection.
            MyMusic.Add(new Recording("Chris Sells", "Chris Sells Live",
                new DateTime(2008, 2, 5)));
            MyMusic.Add(new Recording("Luka Abrus",
                "The Road to Redmond", new DateTime(2007, 4, 3)));
            MyMusic.Add(new Recording("Jim Hance",
                "The Best of Jim Hance", new DateTime(2007, 2, 6)));

            // Set the data context for the combo box.
            MusicCombo.DataContext = MyMusic;
        }
    }

    // Simple business object.
    public class Recording
    {
        public Recording() { }

        public Recording(string artistName, string cdName, DateTime release)
        {
            Artist = artistName;
            Name = cdName;
            ReleaseDate = release;
        }

        public string Artist { get; set; }
        public string Name { get; set; }
        public DateTime ReleaseDate { get; set; }
    }

    public class DateFormatter : IValueConverter
    {
        // This converts the DateTime object to the string to display.
        public object Convert(object value, Type targetType, object parameter,
            System.Globalization.CultureInfo culture)
        {
            // Retrieve the format string and use it to format the value.
            string formatString = parameter as string;

            if (!string.IsNullOrEmpty(formatString))
            {
                return string.Format(culture, formatString, value);

            }

            // If the format string is null or empty, simply call ToString()
            // on the value.
            return value.ToString();
        }

        // No need to implement converting back on a one-way binding 
        public object ConvertBack(object value, Type targetType, 
            object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft