エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

IValueConverter.Convert メソッド

2013/12/12

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 が返された場合は、ターゲット プロパティに既定値が設定されます。

parameter パラメーターおよび culture パラメーターを使用して 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

表示:
© 2014 Microsoft