我对INotifyPropertyChanged有点麻烦。我实施了很多次,但这种情况有所不同。我想创建以下应用程序:
有多个制表符容器,它们绑定到不同的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去焦点)。
有谁知道问题出在哪里?
我的“架构”看起来(或多或少;-))像这样:
答案 0 :(得分:-1)
ObservableCollection只是意味着当集合发生变化,添加,删除,重新排序等时,更新UI的事件将被启动。
更改ObservableCollection中项目的属性(例如字符串)实际上不会导致UI事件。
ObservableCollection中的对象是否实现了INotifyPropertyChanged?