2010-04-23 59 views
2

不被调用我有使用DataTemplate一个ComboBox。该DataTemplate包含有约束力的,它使用的IValueConverter一个枚举值转换为字符串。问题是值转换器从不调用。如果我在StatusToTextConverter.Convert()中放置断点,它永远不会被击中。ValueConverter在DataTemplate中绑定

这是我的XAML:

<ComboBox ItemsSource="{Binding Path=StatusChoices, Mode=OneWay}"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Converter={StaticResource StatusToTextConverter}}"/> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

我认为这是一个多么含蓄地结合到DataTemplate正在呈现的价值。我错了吗?

编辑:对于上下文:我打算显示在DataTemplate一个Image旁边那TextBox。如果我不能得到TextBox结合工作,那么我不认为Image将工作,无论是。

回答

3

在某些情况下,你必须明确的Binding供应Path。试试这个:

<TextBlock Text="{Binding Path=.,Converter={StaticResource StatusToTextConverter}}"/> 
+0

这是有效的(我以前从来没有见过这种语法,非常酷)!但事实证明,我实际上并不需要Path =。在那里。在一片辉煌中,我不小心删除了视图模型中的StatusChoices属性。这是我的失败,但至少我从你的答案中学到了一些东西,谢谢! – 2010-04-23 18:53:01

+0

{结合}和{绑定路径=}是几乎相等的,但我也遇到了几种情况下,其他的语法必须使用(当然是有一些附加绑定属性)。 – wpfwannabe 2010-04-23 18:56:05

+0

是的,听起来像那些好的WPF陷阱之一:-) – 2010-04-23 18:58:11