绑定到DataTemplate中的ToString()方法

有没有简单的方法绑定到DataTemplate中的ToString()方法? 我希望TextBlock的Text属性默认使用ToString()作为其Text属性,但这不会发生。 所以任何简单的方法来做到这一点:

<DataTemplate x:Key="myTemplate">
    <TextBlock Text="{Binding ToString()}"/>
<DataTemplate>

你可以使用Text="{Binding}"ToString()方法是隐式调用的。


你可以使用一个转换器。 喜欢这个:

public class PropertyValueStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

不幸的是,你不能将控制绑定到方法,但你可以绕过这样的方式:

public string GetText()
{
    return "I am happy";
}

public string MyText
{
    get { return GetText(); }
}

现在在XAML中:

<DataTemplate x:Key="myTemplate">
    <TextBlock Text="{Binding MyText}"/>
<DataTemplate>

注意MyText属性必须位于窗口的上下文中。

链接地址: http://www.djcxy.com/p/7761.html

上一篇: binding to the ToString() method in a DataTemplate

下一篇: Binding Combobox SelectedValue from bound value in UserControl grid