有没有一种简单的方法来绑定DataTemplate中的ToString()方法?我原本期望TextBlock的Text属性默认使用ToString()方法,但这并没有发生。那么,有没有简单的方法可以实现:
<DataTemplate x:Key="myTemplate">
<TextBlock Text="{Binding ToString()}"/>
<DataTemplate>
有没有一种简单的方法来绑定DataTemplate中的ToString()方法?我原本期望TextBlock的Text属性默认使用ToString()方法,但这并没有发生。那么,有没有简单的方法可以实现:
<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属性必须在窗口的上下文中。
更加合理的做法是在你所绑定的对象中添加一个字符串属性,专门用于该ToString()方法。
Enum.ToString()
时,这也非常有效。 - saluceToString()
方法传递参数?(例如,格式化一个TimeSpan
) - Pac0Text="{x:Bind}"
。 - Felix