Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定到DataTemplate中的ToString()方法_C#_Wpf_Xaml_Datatemplate - Fatal编程技术网

C# 绑定到DataTemplate中的ToString()方法

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中的ToString()方法?我希望TextBlock的Text属性在默认情况下使用ToString()作为其Text属性,但事实并非如此。因此,任何简单的方法都可以做到这一点:

<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参数