首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabItem UIElement OnPropertyChanged

TabItem UIElement OnPropertyChanged
EN

Stack Overflow用户
提问于 2016-04-05 21:09:52
回答 1查看 118关注 0票数 0

我有一个带有SelectionChanged事件的TabControl。当选定的TabPage发生更改时,如果TabPage上某个UIElements的值发生更改,我希望得到有关选定TabPage的通知。

代码语言:javascript
复制
private FrameworkElement CurrentFrameworkElement { get; set; }

public TabEvents(DispatcherEvents dispatcherEvents)
    : base(dispatcherEvents)
{
    EventManager.RegisterClassHandler(typeof(System.Windows.Controls.TabControl), System.Windows.Controls.TabControl.SelectionChangedEvent, new SelectionChangedEventHandler(TabControl_SelectionChanged), true);
}

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (e.Source is System.Windows.Controls.TabControl)
    {
        var ti = ((System.Windows.Controls.TabControl)e.Source).SelectedItem as TabItem;
        CurrentFrameworkElement = e.Source as System.Windows.Controls.TabControl;
    }
}

使用此代码,我可以获得当前的TabItem。如何检测当前TabItem中UIElement值的更改?例如,在TextBox中输入文本或切换CheckBox应该会发出通知。

我找到了ObservableUIElementCollection here的一个实现,但是我不知道我是否可以在这个场景中使用它以及如何使用它。

EN

回答 1

Stack Overflow用户

发布于 2016-04-05 21:31:14

您可以在ViewModel中跟踪您的更改。我做了类似的事情,从属性setter中标记了一个字段:

代码语言:javascript
复制
bool _hasChanged = false;

public string Name
{
    get
    {
        return _name;
    }

    set
    {
        if (value != _name)
        {
            _name = value;
            _hasChanged = true;
        }
    }
}

然后,当选项卡更改时,检查_hasChanged字段的值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36427346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档