显示一个新的页面,它取消了我的复选框.我该如何预防呢?
本文关键字:复选框 我的 取消 何预防 一个 显示 | 更新日期: 2023-09-27 18:09:53
所以我有这个应用程序,你可以从不同的页面中选择,就像一个页面导航系统…我在它们上面都有一个复选框。如果我选中了SecondPage();
的复选框然后又去了thirdPage();
那么SecondPage();
的复选框就会被选中,我该如何防止这种情况呢?
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
bool isCHecked = true;
private void button_Click(object sender, RoutedEventArgs e)
{
main.Content = new SecondPage();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
main.Content = new thirdPage();
}
}
您总是创建页面的新实例,因此它将是一个新的副本,并且以前的状态将丢失,其中一个解决方案是在主窗口中创建字段,如:
namespace CheckboxesAndPages
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private thirdPage _thirdPage;
private SecondPage _SecondPage;
public MainWindow()
{
InitializeComponent();
}
bool isCHecked = true;
private void button_Click(object sender, RoutedEventArgs e)
{
_SecondPage = _SecondPage != null ? _SecondPage : new SecondPage();
main.Content = _SecondPage;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
_thirdPage = _thirdPage !=null ? _thirdPage : new thirdPage();
main.Content = _thirdPage;
}
}
或者您也可以创建属性:
namespace CheckboxesAndPages
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private thirdPage _thirdPage;
private SecondPage _SecondPage;
private ThirdPage ThirdPage
{
get
{
_thirdPage = _thirdPage !=null ? new thirdPage();
return _thirdPage;
}
set
{
_thirdPage = value;
}
}
private SecondPage SecondPage
{
get
{
_SecondPage= _SecondPage!=null ? new SecondPage();
return _SecondPage;
}
set
{
_SecondPage= value;
}
}
private SecondPage _SecondPage;
public MainWindow()
{
InitializeComponent();
}
bool isCHecked = true;
private void button_Click(object sender, RoutedEventArgs e)
{
main.Content = SecondPage;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
main.Content = ThirdPage;
}
}
或者你可以这样写空条件:
_SecondPage = _SecondPage ?? new SecondPage();