WPF передает родительский объект привязки к конвертеру
У меня есть ItemControl, связанный с набором типа Student.
Внутри ItemTemplate у меня есть TextBox, который использует IValueConverter для выполнения пользовательских вычислений и логики. Я хочу передать фактический объект Student в преобразователь значений, а не его свойство. Как я могу это сделать? Вот пример моего кода.
<ItemsControl ItemsSource="{Binding StudentList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding ????, Converter={StaticResource MyConverter}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
В коде у меня есть это
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;
}
}
Ответы
Ответ 1
Вы можете просто оставить путь. Таким образом, вы попадаете в фактический объект.
<TextBlock Text="{Binding Converter={StaticResource MyConverter}}"/>
или если вы хотите быть явным:
<TextBlock Text="{Binding Path=., Converter={StaticResource MyConverter}}"/>