Go to your XAML code change the button definition by adding the following
Visibility="{binding ButtonVisibility}"
create a new class called ButtonViewModel.cs here is the code
class ButtonViewModel: INotifyPropertyChanged
{
public ButtonViewModel(Visibility visibility)
{
_buttonVisibility = visibility;
}
private Visibility _buttonVisibility ;
public Visibility ButtonVisibility
{
get { return _buttonVisibility; }
set
{
_buttonVisibility = value;
OnPropertyChanged("ButtonVisibility");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string p)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(p));
}
}
in page2.cs add this constructor
public Page2(Visibility visibilty)
{
InitializeComponent();
DataContext = new ButtonViewModel(visibilty);
}
public Page2()
{
InitializeComponent();
DataContext = new ButtonViewModel(Visibility.Visible);
}
go to the button event handler and add this code
NavigationWindow nvw = new NavigationWindow();
nvw.Content = new Page1(Visibility.Collapsed);
nvw.Show();
it is working as it should with me