[英]Confirmation on switching between tabs
我有两个选项。 用户将输入一些数据并将其保存在第一个选项卡上。 第二个选项卡列出了保存的数据。 我需要的是,当用户在将数据保存到第一个选项卡中之前选择第二个选项卡时,应显示一个确认消息框,显示是,否和取消。 如果用户单击“是”按钮,则应保存数据并转到第二个选项卡。 如果他单击否,则无需保存数据,最后,如果单击取消,该选项卡将保留所有输入的数据。 我该怎么做?
尽管我不同意您打扰用户在选项卡之间的流程的方式,我还是会逗您回答这个问题:
您需要完成以下两项操作:
第一项:
选项卡控件具有Click方法,您可以订阅:
Click=”MyTabButton_Click”
第二项:
这部分您必须手动执行。 您可以在click事件中设置一个变量,该变量包含最后选择的选项卡。 设置此选项后,您可以检查一个变量(您先前设置的),以了解先前选择的选项卡。 然后,您可以进行所有验证。
Delphi的TPageControl带有一个带有“ AllowChange”参数的OnChanging事件。 我想WPF中也有类似的东西。
为了简单起见,您可以在“隐藏代码”文件中进行以下操作。
我将创建要在WPF控件中显示和编辑的数据的Model类。 使模型实现INotifyPropertyChanged
和IEditableObject
接口。
INotifyPropertyChanged
将允许您绑定到模型。 IEditableObject
将允许您提供编辑,保存和取消功能。
TabControl具有您可以处理的SelectionChanged
事件,它可以让您检测用户何时更改选项卡,在此处理程序中,您可以使用System.Windows.MessageBox
来要求用户进行保存等, System.Windows.MessageBox.Show()
返回一个MessageBoxResult
对象,该对象可用于确定用户单击了什么按钮并执行适当的操作。
这不是一种行之有效的方法,但是它使事情变得简单,您可能需要研究一些WPF设计模式以帮助实现代码可管理性。
如果您需要进一步说明的内容,请询问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.