Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF Trigger binding to MVVM property

I have a datatemplate containing an image that I want to be hidden if the the value of a property in a ViewModel is true. Can anyone tell me why the the xaml below does not work?

<Image x:Name="img" Source="..\Images\List_16.png" Margin="0,0,5,0">
  <Image.Style>
    <Style>
      <Style.Triggers>
        <DataTrigger Binding="{Binding CurrentListHasPendingChanges}" Value="True">
          <Setter Property="Image.Visibility" Value="Hidden" />
        </DataTrigger>
        <DataTrigger Binding="{Binding CurrentListHasPendingChanges}" Value="False">
          <Setter Property="Image.Visibility" Value="Visible" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Image.Style>
</Image>
like image 564
David Ward Avatar asked Nov 25 '09 08:11

David Ward


1 Answers

I just did something similar using a ContentControl.

<ContentControl Content="{Binding CurrentListHasPendingChanges}">
  <ContentControl.ContentTemplate>
    <DataTemplate>
      <Image x:Name="img" Source="..\Images\List_16.png" Margin="0,0,5,0" Visibility="Hidden" />
      <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding}" Value="False">
          <Setter Property="Image.Visibility" Value="Visible" />
        </DataTrigger>
      </DataTemplate.Triggers>
    </DataTemplate>
  </ContentControl.ContentTemplate>
</ContentControl>

From http://karlhulme.wordpress.com/2007/03/06/using-a-contentcontrol-and-datatemplate-to-indicate-new-andor-modified-data/

like image 71
a_hardin Avatar answered Sep 17 '22 17:09

a_hardin