c# wpf xaml datatemplate

datatemplate wpf c#



vinculante para el método ToString() en una DataTemplate (5)

Desafortunadamente, no puedes vincular el control al método, pero puedes evitarlo:

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

Ahora en XAML:

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

tenga cuidado, la propiedad MyText debe estar en el contexto de la ventana.

¿Hay alguna manera fácil de enlazar al método ToString () en un DataTemplate? Esperaría que la propiedad Text de un TextBlock use ToString () de forma predeterminada para su propiedad Text, pero eso no sucede. Entonces, cualquier forma fácil de hacer esto:

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


Puedes usar Text="{Binding}" . El método ToString() se invoca implícitamente.


Tendría más sentido agregar una propiedad de cadena, para ese método específico ToString (), al objeto al que se está vinculando.


WPF no admite el enlace directo a los métodos, pero puede usar IValueConverter, ObjectDataProvider personalizado o cualquier otro enfoque como se describe here .


puedes usar un convertidor Me gusta esto:

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(); } }