Этот вопрос, кажется, часто возвращается, но я не нахожу ответа, который мог бы решить мою проблему.
Да, у меня реализована функция NotifyPropertyChanged, и она работает во всем моем приложении. Но для этого я пытаюсь изменить видимость моего стека, если щелкнуть ImageButton, если я смотрю на отладчик, значение изменяется, но визуально не меняется.
ImageButton все еще существует, но значение в отладчик равен false.
Должно быть что-то, чего я не понимаю о привязке, если бы кто-то мог помочь, было бы хорошо.
Спасибо.
Второй ImageButton привязан к команде DeleteIconPressed, которая запускает изменение IsVisible стека во втором фрагменте кода.
<CollectionView.Header>
<StackLayout>
<StackLayout Orientation="Horizontal" Spacing="220">
<Label Text="Agenda" TextColor="Black" FontSize="18"/>
<StackLayout Orientation="Horizontal">
<ImageButton Source="iconplus.png" HeightRequest="30" WidthRequest="30" Clicked="GoToNewTaskPage"></ImageButton>
<ImageButton Source="iconmoins.png" HeightRequest="30" WidthRequest="30" Command="{Binding DeleteIconPressed}"></ImageButton>
</StackLayout>
</StackLayout>
</StackLayout>
</CollectionView.Header>
Далее в коде у меня есть этот stacklayout, который я привязал к логическому свойству, чтобы изменить видимость
<StackLayout x:Name="DeleteIcon" Grid.Row="2" Grid.Column="6" IsVisible="{Binding DeleteIsPressed}">
<ImageButton Source="iconmoins.png" HeightRequest="25" Command="{Binding Source={x:Reference TasksGroupCollection}, Path=BindingContext.DeleteTasksGroupCommand }" CommandParameter="{Binding .}" BackgroundColor="#00FBC1BC"></ImageButton>
</StackLayout>
В моей модели просмотра, которая наследуется от BaseViewModel, имеющего N Реализован интерфейс otify (который работает для всего, что я делал в своем приложении), у меня реализовано логическое значение и команда.
private bool deleteIsPressed;
public bool DeleteIsPressed
{
get
{
return deleteIsPressed;
}
set
{
deleteIsPressed = value;
NotifyPropertyChanged("DeleteIsPressed");
}
}
public Command DeleteIconPressed { get; set; }
public TasksGroupPageViewModel()
{
DeleteIconPressed = new Command( () => DeleteIconPress());
GetTaskgroups();
}
private void DeleteIconPress()
{
DeleteIsPressed = false;
}