Измените содержание кнопок на панели инструментов Windows Phone

69
5

Как динамически изменять содержимое инструментария инструментария через программу?

Я наложил несколько кнопок на карты инициализации, и я хочу изменить содержимое кнопки, пока пользователь нажимает на нее.

Это мой код xaml:

<toolkit:MapExtensions.Children>
<toolkit:MapItemsControl x:Name="MapItems">
<toolkit:MapItemsControl.ItemTemplate>
<DataTemplate>
<toolkit:Pushpin GeoCoordinate="{Binding Coordinate}" Tap="PinOnTap">
<toolkit:Pushpin.Template>
<ControlTemplate TargetType="toolkit:Pushpin">
<StackPanel>
<ContentPresenter x:Name="content" HorizontalAlignment="Center" Content="{TemplateBinding Content}" />
<Path Data="M0,0 L0,1 L1,0" Fill="{TemplateBinding Background}" Stretch="Fill" Margin="32,0" Height="12" Width="18"
Visibility="{Binding Content.Visibility, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="Left" />
<Image Source="{Binding Icon_img}" Stretch="None" HorizontalAlignment="Left"/>
</StackPanel>
</ControlTemplate>
</toolkit:Pushpin.Template>
<Border Background="White" Visibility="Collapsed" Width="200" HorizontalAlignment="Center" >
<StackPanel Orientation="Horizontal" Tap="gotoProfileFromPin">
<Image Margin="8" Source="{Binding Image}" VerticalAlignment="Top" Width="50" Height="50" />
<StackPanel>
<TextBlock Text="{Binding Uid}" Visibility="Collapsed"/>
</StackPanel>
</StackPanel>
</Border>
</toolkit:Pushpin>
</DataTemplate>
</toolkit:MapItemsControl.ItemTemplate>
</toolkit:MapItemsControl>
</toolkit:MapExtensions.Children>

И моя program.cs:

private void PinOnTap(object sender, System.Windows.Input.GestureEventArgs e)
{
var popOut = ((sender as Pushpin).Content) as Border;
popOut.Visibility = System.Windows.Visibility.Visible;

var popOutImg = (popOutNew.Child as StackPanel).DataContext;

var popUser = popOutImg as UserPin;

// function to get the images by Uid

popUser.Image = new Uri(images fetch from function, UriKind.RelativeOrAbsolute);

popOutNew.Child.UpdateLayout();

e.Handled = true;
}

В функции PinOnTap я возьму изображение из другой функции и покажу его на картах в качестве инструментария: Pushpin.Content, но он не может работать.

Этот код:

popUser.Image = new Uri(images fetch from function, UriKind.RelativeOrAbsolute);

он меняет только источник изображения, но не обновляет пользовательский интерфейс. Я печатаю его значение, и его источник был изменен, но я не знаю, почему он не появился на карте (на карте отображается только "Граница" на белом фоне и в нем нет изображения)

спросил(а) 2013-08-16T04:56:00+04:00 7 лет, 1 месяц назад
1
Решение
114

Я думаю, вам придется реализовать INotifyPropertyChange, поскольку изменение не отражается на Xaml.

ответил(а) 2013-08-16T13:34:00+04:00 7 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема