У меня есть этот longListSelector:Изменить изображение кнопки, которая находится на элементе в LongListSelector
<phone:LongListSelector
x:Name="ListaMensajesTablon"
ItemsSource="{Binding Mensajes}"
ItemTemplate="{StaticResource MensajesTablonDataTemplate}"
SelectionChanged="MensajeTablonSelected"/>
С этой ItemTemplate:
<DataTemplate x:Key="MensajesTablonDataTemplate">
<Grid>
<Button MaxHeight="85" MaxWidth="95" MinHeight="85" MinWidth="95" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Click="Button_Click" BorderBrush="Transparent">
<Button.Content>
<Image x:Name="imagenFav" MaxHeight="75" MaxWidth="75" MinHeight="75" MinWidth="75"
Source="{Binding userFav, Converter={StaticResource BoolToHeart}}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Button.Content>
</Button>
</Grid>
</DataTemplate>
Этот код-за:
private void Button_Click(object sender, RoutedEventArgs e)
{
botonFavPulsado = true;
botonAmor = (Button)sender;
}
private void MensajeTablonSelected(object sender, SelectionChangedEventArgs e)
{
if(botonFavPulsado)
{
var myItem = ((LongListSelector)sender).SelectedItem as MensajeTablon;
if(botonAmor!=null)
{
if (myItem.userFav)
{
botonAmor.Content = new Image
{
Source = new BitmapImage(new Uri("icons/heart.red.png", UriKind.Relative))
};
}
else
{
botonAmor.Content = new Image
{
Source = new BitmapImage(new Uri("icons/heart.white.png", UriKind.Relative))
};
}
}
botonFavPulsado = false;
}
}
Я хочу сделать это, когда вы нажимаете кнопку, находящуюся внутри элемента LongListSelector, меняйте изображение. При первом нажатии кнопки входит функция Button_Click, а затем вводится функция MensajeTablonSelected и изменяется изображение (хорошее). Проблема заключается в второй раз, когда я нажмите на ту же кнопку входит в функции функции Button_Click и не входит в функции MensajeTablonSelected
Резюме: ToggleButton в LongItemSelector работает в первый раз, но не второй один
Он вызывается дважды, потому что в конце вы снова меняете выбранный элемент. Один раз для клика и один раз для click -> null. –