WPF,检测您要从哪个选项卡导航

时间:2014-12-23 14:35:12

标签: c# wpf

我有一个带有多个标签的WPF应用程序。在每个选项卡下,用户可以更改一些设置(使用CheckBoxes,TextBoxes等),然后用户必须单击"更新"按钮以保存这些设置。一切正常,但其中一个要求是提醒用户,如果他试图切换到其他选项卡而不点击"更新"按钮。 所以我试图使用

TabItem_LostFocus

实现它的事件处理程序,但每次单击选项卡中的某些内容时都会触发此事件。我想我可以通过放置

来解决这个问题
e.Handled = true

对于我拥有的每个控件,但这听起来并不像一个优雅的解决方案(特别是当我没有为我的标签下的所有内容提供点击事件处理程序时)。是否有其他方法可以确定何时切换到当前选项卡? 谢谢

2 个答案:

答案 0 :(得分:1)

要满足您的要求,您只需将数据绑定到TabControl.SelectedIndexTabControl.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>