2014-07-01 3 views
0

У меня есть Views/Doc.xaml с:Изменение изображения в XAML на основе значения из другого XAML

<navigation:Page .... 
<data:DataGrid> 
    <data:DataGridTemplateColumn Header="Actions" HeaderStyle="{StaticResource TextHeaderStyle}" > 
<data:DataGridTemplateColumn.CellTemplate> 
<DataTemplate> 
    <Grid x:Name="gridDocumentColumns"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 
     <HyperlinkButton x:Name="hlEmail" Grid.Column="1" Tag="{Binding Index}" Click="hlEmail_Click" > 
      <ToolTipService.ToolTip> 
       <ToolTip Tag="ToolTipEmail" Opened="toolTip_ActionOpened" /> 
      </ToolTipService.ToolTip> 
      <Image Source="../images/close.png" Stretch="None" /> 
     </HyperlinkButton> 
    </Grid> 
</DataTemplate> 
</data:DataGridTemplateColumn.CellTemplate> 
</data:DataGridTemplateColumn> 
</data:DataGrid> 
.............. 

У меня есть второй класс Views/Органы управления/ReadDocs.xaml(). Если какое-то условие в ReadDocs.xaml Code Behind истинно, я хочу изменить источник изображения в Views/Doc.xaml на ../images/open.png

Как я могу это достичь?

ответ

0

Вы можете определить преобразователь и передать ему значение флага. Этот конвертер вернет определенный путь в зависимости от пройденного вами значения.

Пожалуйста, обратитесь ниже преобразователь для справки ...

public sealed class ImagetoPathConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, string language) 
     { 
      if (value == null) 
      { 
       return value = "ms-appx:///Assets/Images/bk/1.png"; 
      } 
      else if (value.ToString() == "1") 
      { 
       return value = "ms-appx:///Assets/Images/bk/2.png"; 
      } 
      else if (value.ToString() == "2") 
      { 
       return value = "ms-appx:///Assets/Images/bk/3.png"; 
      } 
        } 

     public object ConvertBack(object value, Type targetType, object parameter, string language) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

Bind преобразователь в источнике и передать ваши условное значение.

+0

Но источник находится в одном файле и состоянии во втором файле. Как передать значение из File1 в File2 и изменить изображение в файле2 – user576914

+0

Использовать статическую переменную, если вы хотите иметь флаг в самом коде .. или обновить его в базе данных и прочитать его до отображения изображения .... – Krunal

Смежные вопросы