2009-10-30 87 views
1

所以我有实现INotifyPropertyChanged的对象,我有一个属性,当它改变时,它调用PropertyChanged事件没事,但是当我使用这样的转换器:WPF转换问题

 <Image Grid.Column="0"> 
      <Image.Source> 
       <Binding Path="IsInstrumentStatusOk" UpdateSourceTrigger="PropertyChanged"> 
        <Binding.Converter> 
         <converters:BooleanToImageConverter 
          ImagePathIfFalse="/Images/InstrumentStatusBar/Instrument_Status_Alarm.png" 
          ImagePathIfTrue="/Images/InstrumentStatusBar/Instrument_Status_OK.png" /> 
        </Binding.Converter> 
       </Binding> 
      </Image.Source> 
     </Image> 

对于它不会更新它的一些原因,它不会调用转换器。如果我使用它像正常

Source="{Binding MyProperty, Converter={StaticResource MyConverter}}" 

它的工作原理,但我不希望使用它一样,因为我有一堆,我想不同的图像使用转换器。任何想法为什么它不更新?

谢谢。

回答

2

你在你的XAML中设置UpdateSourceTrigger="PropertyChanged"。这意味着当目标属性变化值应更新回源。显然,没有什么是千变万化的Image::Source财产。

就完全消除UpdateSourceTrigger设置,你应该罚款。

+0

这也没有做到这一点,我不得不采取转换器,并把它放在资源中,然后引用它作为StaticResource。这很奇怪,我不知道为什么它不起作用。 – Carlo 2009-10-30 14:13:42

+0

这是非常奇怪的。没有理由我能想到的,它不应该像内联工作。 – 2009-10-30 14:43:49

+0

好吧,所以我再试一次,这次它工作。也许我没有使用以前使用过的东西?不知道。感谢你的回答。 – Carlo 2009-11-02 16:53:19