WPF将父级绑定对象传递给转换器

27

我有一个ItemsControl,它绑定了一个名为Student的集合。 在ItemTemplate中,我有一个使用IValueConverter进行自定义计算和逻辑的TextBox。 我想将实际的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个回答

42

您可以直接省略路径,这样您就可以访问实际绑定的对象。

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

或者如果您想要更清晰地表达:

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

4
谢谢,我现在去丢脸了。 - Tomislav Markovski
3
这并不是显而易见的。如果有帮助的话,您可以将其标记为答案。 :) 顺便说一句,通过使用{Binding Path = .},您可以获得相同的结果。 - Botz3000
1
@TomislavMarkovski,希望你已经从尴尬中恢复过来了。这并不是显而易见的,而且试图筛选有关绑定属性的所有信息也很困难。 - Daniel Hollinrake
我可以使用相同的转换器参数吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接