我有一个带有多个选项卡的WPF应用程序。用户可以在每个选项卡下更改某些设置(使用CheckBoxes,TextBoxes等),然后用户必须单击“更新”按钮才能保存这些设置。一切正常,但要求之一是警告用户是否尝试切换到其他选项卡而不单击“更新”按钮。
所以我正在尝试使用

TabItem_LostFocus


事件处理程序来实现它,但是每次我点击选项卡中的某个东西时都会触发此事件。我想我可以通过放置来修补此问题

e.Handled = true


对于我拥有的每个控件,但这听起来都不是一个优雅的解决方案(尤其是当我在选项卡下没有所有单击事件处理程序时)。还有什么其他方法可以确定何时从当前选项卡切换到其他选项卡?
谢谢

最佳答案

为了满足您的要求,您只需要将数据绑定到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;
    }
}

关于c# - WPF,检测您正在从哪个选项卡导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27622457/

10-17 01:05