【问题标题】:Caliburn Micro - UI not updated second timeCaliburn Micro - UI 未第二次更新
【发布时间】:2012-08-17 14:18:40
【问题描述】:

我正在开发一个使用 Caliburn Micro 的 WPF 项目。我遇到了第二次打开视图时视图中的控件没有更新的问题。第一次数据绑定工作正常。

当我在第二次调用 View 时单步执行 ViewModel 时,我可以看到数据绑定属性正在获取新值并调用 NotifyOfPropertyChange(),但更改并未反映在 UI 中。有任何想法吗?我的视图继承PropertyChangedBase()

以下是我在视图模型中的属性

public string Info
{
    get { return _info; }
    set { _info = value; NotifyOfPropertyChange(() => Info); }
}

public IEnumerable<ComponentInfo> BondableComponents
{
    get { return _bondableComponents; }
    set { _bondableComponents = value; NotifyOfPropertyChange(() => BondableComponents); }
}

和 Xaml

<TextBox Name="Info" Grid.Row="0" Grid.Column="0" IsReadOnly="True"/>
<DataGrid ItemsSource="{Binding BondableComponents}">

【问题讨论】:

  • 你能显示打开和关闭视图的代码吗?
  • 您是在 OnInitialize 而不是 OnActivate 或 OnViewLoaded 中填充数据?

标签: wpf data-binding caliburn.micro caliburn


【解决方案1】:
BindableCollection<ComponentInfo> Bondable

如果您有新项目出现在更新中,则应使用... - 编辑 - 在 GitHub 上回答。

【讨论】:

  • OP 已经在引发属性通知事件,如果将集合替换为另一个集合,UI 仍应更新,没有提及从集合中添加/删除项目.. 什么是可绑定集合怎么解决这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 2022-11-11
  • 1970-01-01
  • 2015-07-07
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多