C# 绑定到DataTemplate中的ToString()方法
有没有简单的方法可以绑定到DataTemplate中的ToString()方法?我希望TextBlock的Text属性在默认情况下使用ToString()作为其Text属性,但事实并非如此。因此,任何简单的方法都可以做到这一点:C# 绑定到DataTemplate中的ToString()方法,c#,wpf,xaml,datatemplate,C#,Wpf,Xaml,Datatemplate,有没有简单的方法可以绑定到DataTemplate中的ToString()方法?我希望TextBlock的Text属性在默认情况下使用ToString()作为其Text属性,但事实并非如此。因此,任何简单的方法都可以做到这一点: <DataTemplate x:Key="myTemplate"> <TextBlock Text="{Binding ToString()}"/> <DataTemplate> WPF不支持直接绑定到方法,但您可以使用自
<DataTemplate x:Key="myTemplate">
<TextBlock Text="{Binding ToString()}"/>
<DataTemplate>
WPF不支持直接绑定到方法,但您可以使用自定义的IValueConverter、ObjectDataProvider或任何其他描述的方法。您可以使用转换器。像这样:
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();
}
}
对于特定的ToString()方法,向要绑定的对象添加string属性更有意义。您可以使用
Text=“{binding}”
。ToString()
方法是隐式调用的。不幸的是,您无法将控件绑定到方法,但您可以避免这样做:
public string GetText()
{
return "I am happy";
}
public string MyText
{
get { return GetText(); }
}
现在在XAML中:
<DataTemplate x:Key="myTemplate">
<TextBlock Text="{Binding MyText}"/>
<DataTemplate>
请注意,MyText属性必须位于窗口的上下文中。这对我很有效。稍加修改。返回值!=无效的value.ToString():string.Empty;当绑定到要显示
enum.ToString()
的枚举时,这种方法也很有效。如何将parmaeter传递给ToString()
方法?(例如,要格式化TimeSpan
)@Pac0,请检查StringFormat参数