INotifyPropertyChanged未按预期工作

时间:2012-03-18 18:53:20

标签: wpf binding inotifypropertychanged

我对INotifyPropertyChanged有点麻烦。我实施了很多次,但这种情况有所不同。我想创建以下应用程序: mockup

有多个制表符容器,它们绑定到不同的ObservableCollections of Entities。现在我想显示当前(最后)选定实体的名称。为了实现这一点,我创建了一个在Window类中创建DependencyProperty CurrentEntity并通过TabControls上的SelectionChanged分配当前实体。

private void SelectionChanged(Object sender, EventArgs e)
{
    CurrentEntity = e.NewItems[0] as Entity;
}

TextBlock,在上图中,显示VideoA,如下所示:

<TextBlock Text={Binding CurrentEntity.Name}" />

现在每当我选择一个新选项卡时,TextBlock中的文本都会相应更改。但是,当我更改实体的名称(在选项卡中的TextBox内部,也绑定到实体)时,TextBlock中的文本不会更改。我必须选择另一个选项卡,然后更改回选项卡,我在其中更改名称以查看TextBlock中新输入的名称。基本上,这是我的问题,我希望看到文本更改而不首先选择另一个Tab(是的,我在输入新名称后从Tab中的TextBox去焦点)。

有谁知道问题出在哪里?

我的“架构”看起来(或多或少;-))像这样: uml

1 个答案:

答案 0 :(得分:-1)

ObservableCollection只是意味着当集合发生变化,添加,删除,重新排序等时,更新UI的事件将被启动。

更改ObservableCollection中项目的属性(例如字符串)实际上不会导致UI事件。

ObservableCollection中的对象是否实现了INotifyPropertyChanged?