WPF,检测您要从哪个选项卡导航离开
本文关键字:选项 导航 离开 检测 WPF | 更新日期: 2023-09-27 18:35:10
我有一个带有多个选项卡的WPF应用程序。 在每个选项卡下,用户可以更改某些设置(使用复选框,文本框等),然后用户必须单击"更新"按钮才能保存这些设置。 一切正常,但要求之一是提醒用户,如果他尝试切换到其他选项卡而不单击"更新"按钮。所以我正在尝试使用
TabItem_LostFocus
事件处理程序来实现它,但每次我单击选项卡中的某些内容时都会触发此事件。 我想我可以通过放置来修补这个问题
e.Handled = true
对于我拥有的每个控件,但这听起来不像是一个优雅的解决方案(尤其是当我没有选项卡下所有内容的单击事件处理程序时)。 有没有其他方法可以确定何时离开当前选项卡?谢谢
若要实现要求,只需将数据绑定到TabControl.SelectedIndex
或TabControl.SelectedItem
属性:
<TabControl ItemsSource="{Binding TabItemCollection}"
SelectedItem="{Binding SelectedTabItem}" />
然后在视图模型或代码隐藏中:
private YourDataType selectedItem;
public YourDataType SelectedItem
{
get { return selectedItem; }
set
{
// selectedItem represents the previous TabItem
// value represents the new TabItem
selectedItem = value;
}
}
您可以绑定到每个TabItem
的 IsSelected
属性 .. 然后在 setter 中进行检查
<TabControl>
<TabItem IsSelected="{Binding TabItem1IsSelected}"/>
</TabControl>
财产:
public bool TabItem1IsSelected
{
get { return _tabItem1IsSelected; }
set
{
if (_tabItem1IsSelected)
{
if (!value)
{
// Check to see if user has updated
if (!userUpdated)
{
value = true;
}
}
}
_tabItem1IsSelected = value;
RaisePropertyChanged();
}
}