Domanda

Ho ItemsControl che è destinata alla raccolta di tipo Student. All'interno del ItemTemplate ho un TextBox che utilizza IValueConverter di fare alcuni calcoli personalizzati e la logica. Voglio passare l'oggetto Student reale al convertitore di valori, invece che una proprietà di esso. Come posso fare ciò? Ecco un esempio del mio codice.

 <ItemsControl ItemsSource="{Binding StudentList}">
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Name}" />
                                    <TextBlock Text="{Binding ????, Converter={StaticResource MyConverter}}" />
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
 </ItemsControl>

Nel codice ho questo

public class MyValueConverter : IValueConverter
{
      public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            // I want 'value' to be of type Student.
            return null;
        }
} 
È stato utile?

Soluzione

Si può solo lasciare fuori il percorso. In questo modo si ottiene l'oggetto vero e proprio legato a.

<TextBlock Text="{Binding Converter={StaticResource MyConverter}}"/>

o se si vuole essere esplicito in proposito:

<TextBlock Text="{Binding Path=., Converter={StaticResource MyConverter}}"/>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top