#c# #silverlight #xaml
#c# #silverlight #xaml
Вопрос:
У меня есть Views /Doc.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 / Controls/ReadDocs.xaml (). Если определенное условие в коде ReadDocs.xaml позади истинно, я хочу изменить источник изображения в Views/Doc.xaml на ../images/open.png
Как я могу этого добиться?
Ответ №1:
Вы можете определить конвертер и передать ему значение флага. Этот конвертер вернет определенный путь в зависимости от переданного вами значения.
Пожалуйста, обратитесь к приведенному ниже конвертеру для справки…
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();
}
}
Привяжите конвертер к исходному коду и передайте свое условное значение.
Комментарии:
1. Но источник находится в одном файле, а условие — во втором файле. Как можно передать значение из File1 в File2 и изменить изображение в File2
2. Используйте статическую переменную, если вы хотите иметь флаг в самом коде .. или обновите его в базе данных и прочитайте то же самое перед отображением изображения….