tutorial español c# wpf xaml mvvm

c# - español - Cambiar imagen usando el disparador WPF MVVM



mvvm c# (2)

Todo está bien, lo descubrí.

<DataTemplate DataType="{x:Type local:TabFileViewModel}"> <StackPanel Orientation="Horizontal"> <Image Width="16" Height="16" Margin="3,0"> <Image.Style> <Style TargetType="{x:Type Image}"> <Style.Triggers> <DataTrigger Binding="{Binding NotFound}" Value="false"> <Setter Property="Source" Value="Image/TabFile.PNG"/> </DataTrigger> <DataTrigger Binding="{Binding NotFound}" Value="true"> <Setter Property="Source" Value="Image/ErrorTabFile.PNG"/> </DataTrigger> </Style.Triggers> </Style> </Image.Style> </Image> </DataTemplate>

Esto puede ser un poco inteligente, pero parece que no puedo hacer que funcione. Tengo un modelo de vista que expone una propiedad llamada bool NotFound Me gustaría vincular eso a un desencadenador para que cuando cambie una imagen en mi control cambie.

Esta es la xaml que estoy usando como plantilla de datos para uno de mis modelos de vista.

<DataTemplate DataType="{x:Type local:TabFileViewModel}"> <StackPanel Orientation="Horizontal"> <Image Width="16" Height="16" Margin="3,0" Source="Image/TabFile.PNG" /> <TextBlock Text="{Binding Name}" ToolTip="{Binding FullPath}"/> </StackPanel> </DataTemplate>

Me gustaría poder enlazar la propiedad NotFound y cambiar el origen de la imagen.

Gracias.
Nathan


<DataTemplate DataType="{x:Type local:TabFileViewModel}"> <StackPanel Orientation="Horizontal"> <Grid> <Image x:Name="a" Width="16" Height="16" Margin="3,0" Source="Image/NotFounds.PNG" /> <Image x:Name="b" Width="16" Height="16" Margin="3,0" Source="Image/TabFile.PNG" /> </Grid> <TextBlock Text="{Binding Name}" ToolTip="{Binding FullPath}"/> </StackPanel> <DataTemplate.Triggers> <DataTrigger Binding={Binding NotFound} Value="true"> <Setter TargetName="a" TargetProperty="Visibility" Value="Visible" /> <Setter TargetName="b" TargetProperty="Visibility" Value="Hidden" /> </DataTrigger> <DataTrigger Binding={Binding NotFound} Value="false"> <Setter TargetName="a" TargetProperty="Visibility" Value="Hidden" /> <Setter TargetName="b" TargetProperty="Visibility" Value="Visible" /> </DataTrigger> </DataTemplate.Triggers> </DataTemplate>