每当用户切换到另一个tabitem时,我需要将数据保存在不同的TabItem
中。TabControl保存选定的选项卡项目已更改
我尝试操作TabControl.SelectionChanged
事件,但没有关于先前选择的选项卡项目的信息。
那么,如何让用户从我的TabItem切换到另一个时刻?
每当用户切换到另一个tabitem时,我需要将数据保存在不同的TabItem
中。TabControl保存选定的选项卡项目已更改
我尝试操作TabControl.SelectionChanged
事件,但没有关于先前选择的选项卡项目的信息。
那么,如何让用户从我的TabItem切换到另一个时刻?
你可以做一个全局变量来存储的是最后一个标签
private TabPage LastTab = null;
private void tabSelectionChanged(...)
{
if(LastTab != null)
//Do save
LastTab = tab.SelectedTabPage;// or equivalent
}
使用下面的代码:
private object LastTab = null;
private void tabSelectionChanged(...)
{
if(LastTab != null)
{
//Do save
}
LastTab = control.SelectedContent;
}
这里的内容将是类型的对象,你可以类型转换为并执行保存操作
使用各个选项卡的Enter和Leave事件。如果您需要在代码启动时触发输入事件,则可能需要以编程方式将选定选项卡更改为与设计时不同的选项卡。
这是一个非常粗糙的黑客,无论如何都应该避免。 – mafu 2012-10-28 17:34:40
你需要在参数SelectionChangedEventArgs e
存在:
e.AddedItems
e.RemovedItems
使用未选定的事件,e.TabPage给你,你正在寻找的参考。或者取消选择是否有理由取消它。 – 2012-03-12 13:23:48
如果可能的话,WPF'TabControl'将重新使用'TabItem'模板,所以实际的控件不会改变,但控件后面的'DataContext'会改变。如果您想在切换标签页时保存控件中存储的数据,则需要将其绑定到某些内容。 – Rachel 2012-03-12 13:54:26