Wpf DataTemplate绑定中未调用ValueConverter
我有一个使用Wpf DataTemplate绑定中未调用ValueConverter,wpf,data-binding,datatemplate,Wpf,Data Binding,Datatemplate,我有一个使用数据模板的组合框。DataTemplate包含一个绑定,该绑定使用IValueConverter将枚举值转换为字符串。问题是永远不会调用值转换器。如果我在StatusToTextConverter.Convert()中放置断点,它将永远不会被命中 这是我的XAML: <ComboBox ItemsSource="{Binding Path=StatusChoices, Mode=OneWay}"> <ComboBox.ItemTemplate
数据模板的组合框
。DataTemplate
包含一个绑定,该绑定使用IValueConverter
将枚举值转换为字符串。问题是永远不会调用值转换器。如果我在StatusToTextConverter.Convert()
中放置断点,它将永远不会被命中
这是我的XAML:
<ComboBox ItemsSource="{Binding Path=StatusChoices, Mode=OneWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource StatusToTextConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我认为这就是隐式绑定到DataTemplate
呈现的值的方式。我错了吗
编辑:上下文:我打算在DataTemplate
的文本框旁边显示图像。如果我无法使文本框
绑定工作,那么我认为图像
也无法工作。在某些情况下,必须为绑定明确提供路径
。请尝试以下方法:
<TextBlock Text="{Binding Path=.,Converter={StaticResource StatusToTextConverter}}"/>
这很有效(我以前从未见过这种语法,非常酷)!但事实证明我并不需要路径=。在那里。出于一时的聪明,我无意中删除了视图模型中的StatusChoices属性。这是我的失败,但至少我从你的回答中学到了一些东西,谢谢!{Binding}和{Binding Path=.}几乎是等价的,但我遇到了几种情况,其中必须使用其他语法(当然还有一些附加的绑定属性)。