2011-04-14 13 views
6

ViewModel cihazımdaki bazı boolean özelliklerine göre görüntüyü araç çubuğunda değiştirmem gerekiyor. Görüntü kaynağını değiştirmek için tetikleyici kullanıyorum. Doğru yol mu? Kodum düzgün çalışmıyor, bazen çalışıyor, ancak bazen görüntü değişmeden kalıyor.Tetikleyici ile xaml'deki görüntü kaynağının değiştirilmesi düzgün çalışmıyor

<Image x:Key="startPauseResumeAnalysisToolbarImage" > 
     <Image.Style> 
      <Style TargetType="{x:Type Image}"> 
       <Setter Property="Source" Value="Resources/ToolbarIcons/play.png" /> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsAnalysisRunning}" Value="True" > 
         <Setter Property="Source" Value="Resources/ToolbarIcons/pause.png"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Image.Style> 
</Image> 
+0

public partial class MainWindow : Window, INotifyPropertyChanged { public MainWindow() { InitializeComponent(); this.DataContext = this; } private bool _isAnalysisRunning = false; public bool IsAnalysisRunning { get { return _isAnalysisRunning; } set { _isAnalysisRunning = value; NotifyPropretyChanged("IsAnalysisRunning"); } } private void NotifyPropretyChanged(string property) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(property)); } public event PropertyChangedEventHandler PropertyChanged; private void button1_Click(object sender, RoutedEventArgs e) { IsAnalysisRunning = !IsAnalysisRunning; } } 
, bu kokan Çevirmek gibi görünüyor. – tofutim

cevap

4

Çalışması gerekir. Kodun geri kalanı olmadan neden olmadığını görmek zor. Hangi sınıfın IsAnalysisRunning özelliği varsa INotifyPropertyChanged arabirimini uyguluyor musunuz?

MainWindow.xaml

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:my="clr-namespace:WpfApplication2" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
    <Image > 
     <Image.Style> 
      <Style TargetType="{x:Type Image}"> 
       <Setter Property="Source" Value="Desert.jpg" /> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsAnalysisRunning}" Value="True" > 
         <Setter Property="Source" Value="Koala.jpg"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Image.Style> 
    </Image> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="0,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
    </Grid> 
</Window> 

MainWindow.xaml.cs: Burada

ben bu sınamak için kullanılan küçük bir örnektir

Ben de bu sorun var
+0

Çok teşekkürler, günümü yaptın! –

İlgili konular