我有一个带有多个标签的WPF应用程序。在每个选项卡下,用户可以更改一些设置(使用CheckBoxes,TextBoxes等),然后用户必须单击"更新"按钮以保存这些设置。一切正常,但其中一个要求是提醒用户,如果他试图切换到其他选项卡而不点击"更新"按钮。 所以我试图使用
TabItem_LostFocus
实现它的事件处理程序,但每次单击选项卡中的某些内容时都会触发此事件。我想我可以通过放置
来解决这个问题e.Handled = true
对于我拥有的每个控件,但这听起来并不像一个优雅的解决方案(特别是当我没有为我的标签下的所有内容提供点击事件处理程序时)。是否有其他方法可以确定何时切换到当前选项卡? 谢谢
答案 0 :(得分:1)
要满足您的要求,您只需将数据绑定到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;
}
}
答案 1 :(得分:0)
您可以绑定到每个IsSelected
的{{1}}属性..然后在setter中进行检查
TabItem
属性:
<TabControl>
<TabItem IsSelected="{Binding TabItem1IsSelected}"/>
</TabControl>