繁体   English   中英

确认在选项卡之间切换

[英]Confirmation on switching between tabs

我有两个选项。 用户将输入一些数据并将其保存在第一个选项卡上。 第二个选项卡列出了保存的数据。 我需要的是,当用户在将数据保存到第一个选项卡中之前选择第二个选项卡时,应显示一个确认消息框,显示是,否和取消。 如果用户单击“是”按钮,则应保存数据并转到第二个选项卡。 如果他单击否,则无需保存数据,最后,如果单击取消,该选项卡将保留所有输入的数据。 我该怎么做?

尽管我不同意您打扰用户在选项卡之间的流程的方式,我还是会逗您回答这个问题:

您需要完成以下两项操作:

  1. 单击选项卡时发生的事件
  2. 选择的上一个选项卡(您来自的选项卡)

第一项:

选项卡控件具有Click方法,您可以订阅:

Click=”MyTabButton_Click”

第二项:

这部分您必须手动执行。 您可以在click事件中设置一个变量,该变量包含最后选择的选项卡。 设置此选项后,您可以检查一个变量(您先前设置的),以了解先前选择的选项卡。 然后,您可以进行所有验证。

Delphi的TPageControl带有一个带有“ AllowChange”参数的OnChanging事件。 我想WPF中也有类似的东西。

为了简单起见,您可以在“隐藏代码”文件中进行以下操作。

我将创建要在WPF控件中显示和编辑的数据的Model类。 使模型实现INotifyPropertyChangedIEditableObject接口。

INotifyPropertyChanged将允许您绑定到模型。 IEditableObject将允许您提供编辑,保存和取消功能。

TabControl具有您可以处理的SelectionChanged事件,它可以让您检测用户何时更改选项卡,在此处理程序中,您可以使用System.Windows.MessageBox来要求用户进行保存等, System.Windows.MessageBox.Show()返回一个MessageBoxResult对象,该对象可用于确定用户单击了什么按钮并执行适当的操作。

这不是一种行之有效的方法,但是它使事情变得简单,您可能需要研究一些WPF设计模式以帮助实现代码可管理性。

如果您需要进一步说明的内容,请询问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM