WPF передает родительский объект привязки конвертеру - PullRequest
23 голосов
/ 02 декабря 2010

У меня есть ItemsControl, который связан с коллекцией типа 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 Ответ

39 голосов
/ 02 декабря 2010

Вы можете просто пропустить путь.Таким образом, вы получите фактический объект, связанный с.

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

или, если вы хотите, чтобы это было открыто:

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