当我“新建”ObservableCollection 时,它会失去绑定

2024-01-11

我的 UI 上有一个 ListBox,它绑定到 ObservableCollection 的属性。我将 ObservableCollection 的新实例设置到视图模型构造函数中的属性中,并且可以使用表单上的按钮向其中添加项目。这些在列表中可见。

一切都很好。

但是,如果我重新初始化该属性new在按钮回调中,它会破坏绑定,并且 UI 不再显示集合中的内容。

我假设绑定将继续查找属性的值,但它可能链接到被破坏的引用new.

我做对了吗?谁能详细说明这是如何联系起来的?当我的视图模型不了解视图时,有没有办法重新绑定它?


确保在重新初始化集合后引发 PropertyChangedEvent。引发此事件将允许视图在模型不了解视图的情况下处理属性更改。

class Model : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged(string name)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(name));
    }

    private ObservableCollection<string> _list = new ObservableCollection<string>();
    public ObservableCollection<string> List
    {
        get { return _list; }
        set 
        { 
            _list = value;
            NotifyPropertyChanged("List");
        }
    }

    public Model()
    {
        List.Add("why");
        List.Add("not");
        List.Add("these?");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我“新建”ObservableCollection 时,它会失去绑定 的相关文章

  • 指定初始化和基类?

    在C 20 最新草案 中 给出以下代码 struct B int mb struct D B int md 这六个表达式中哪些是格式错误的 哪些不是 1 D 42 43 2 D 42 43 3 D 42 md 43 4 D 42 md 43
  • SetOaNoCache 是在哪里定义的?

    试图disableBSTR缓存 SetOaNoCache VC 编译器构建输出 SetOaNoCache identifier not found Don t想要使用 奥诺缓存 1 问题 哪里设置Oa无缓存 http msdn micros
  • C# 是否包含 IParsable 或 ItryParsable

    显然 为您自己的解决方案实现以下接口将相当简单 public interface IParsable
  • xamarin.forms 从 xaml 到属性的绑定

    我是一个 xaml 绑定的新手 有时我真的不明白 我的 xaml 中有这个
  • 这是我们可以强制 ObjectDataSource 的唯一方法吗?

    问候 1 我假设对象数据源仅在第一次请求时自动绑定到数据源 但不会在回发时自动绑定到数据源 否则ObjectDataSource 选择事件也会在回发时被触发 但事实并非如此 A 所以唯一的办法就是强迫对象数据源也可以通过手动调用来绑定回发数
  • WPF 单击鼠标即可展开 TreeView

    我有一个带有 HierarchicalDataTemplate 的 WPF TreeView 目前我必须双击一个项目才能展开 折叠它 我想将此行为更改为单击 而不丢失其他功能 所以它应该在点击时展开和折叠 推荐的方法是什么 Thanks 您
  • 类库的 app.config 中的绑定重定向有什么作用吗?

    我经常使用的 VS 解决方案包括单个可执行项目 控制台应用程序 网络应用程序 和许多类库项目这些都被可执行文件引用 使用 NuGet 并安装包时 经常会出现app config为每个项目创建的文件 通常只包含合并引用程序集版本的绑定重定向列
  • 从 QFile 获取句柄

    我有一个QFile 但我需要在其上调用一些仅接受HANDLE 有没有办法找回底层HANDLE of the QFile 我找到了一种使用的方法 get osfhandle 在 MinGW 和 VS 中可用 QFile file HANDLE
  • 用于打印的真实尺寸 WPF 控件

    我目前正在开发一个应用程序 用户可以在画布上动态创建 移动 TextBlock 一旦他们将文本块放置在他们想要的位置 他们就可以按下打印按钮 这将导致 ZPL 打印机打印当前显示在屏幕上的内容 ZPL 命令是通过从每个 TextBlock
  • 检查 ASP.NET Web 应用程序在运行时是否处于调试模式的首选方法?

    在编译时我可以做这样的检查 if DEBUG Log something endif 但最好检查一下是否debug false 是在运行时在 Web config 中设置的吗 HttpContext IsDebuggingEnabled h
  • 如何取消异步下载?

    我有一个问题 如何取消下载 client CancelAsync 对我来说不起作用 因为如果我取消下载并开始新的下载 代码仍会尝试访问旧的下载文件 您必须知道 在我的代码中 有一个部分 当下载完成时 它应该解压缩已下载的文件 像这样的示例
  • 如何使用 MonoTouch c# 以编程方式获取联系人?

    如何获取 iPhone 中的联系人 我需要从 iPhone 联系人中获取所有属性 如何使用MonoTouch以编程方式实现 ABAddressBook iPhoneAddressBook new ABAddressBook ABPerson
  • Azure 可以运行 WPF 吗?

    我想编写一个在 Windows Azure 上运行的 ASP Net MVC 应用程序 该应用程序将使用 WPF 创建图像 在我开始写之前 这会起作用吗 Azure 是否具有渲染 WPF 所需的 DLL 包括 DirectX 和图形功能 我
  • Listbox手动DrawItem大字体

    我正在尝试绘制末端是一个的项目 红色字符 并将其删除 字符 并用黑色绘制其他项目 这是我的代码 private void listBox1 DrawItem object sender DrawItemEventArgs e e DrawB
  • 为什么“扔”和“扔前”在这种情况下有相同的行为?

    我惊呆了 我一直以为throw单独在 catch 块中会抛出手头的异常而不改变堆栈跟踪 但是throw ex在 catch 块中将更改堆栈跟踪以显示源自语句位置的异常 采取以下两个代码块 我希望输出会略有不同 因为使用throw和其他用途t
  • 具有相反结合顺序的 C++ 重载运算符

    很难想出一个标题 我的母语不是英语 struct A int value A operator int i const A a a value value i return a int main A a a value 2 a a 2 re
  • 使用 Clang 将 C++ 转换为 C 代码

    我知道llvm可用于将c 转换为c代码 我想知道是否clang可以做同样的事情 看成clang源自llvm 那么我可以使用clang将c 代码转换为c代码 如果你想知道我为什么要这样做 这是我的场景 PIC是一家微控制器制造商 不生产C 编
  • 如何在 .NET 中使 ComboBox 不可编辑?

    我想要一个 仅选择 ComboBox它提供了一个项目列表供用户选择 应在文本部分禁用打字ComboBox控制 我最初对此进行谷歌搜索 发现了一个过于复杂 误导性的建议来捕捉KeyPress event 要使 ComboBox 的文本部分不可
  • 如何将逗号分隔的列值与另一个表作为行连接

    我试图通过首先转换我正在成功执行的 SupplierId 列中的逗号分隔值来连接两个表 然而 当我尝试通过外键 DCLink 加入另一个带有供应商名称的表 Vendors 时 问题就出现了 这就是我的意思 原始表的 select 语句 SE
  • 抽象类、构造函数和 Co

    嗯 我正在尝试重用 C 代码的一部分 它是一个带有UDP服务器的抽象类 可以在这里看到 http clutch inc com blog p 4 http clutch inc com blog p 4 我创建了一个像这样的派生类 publ

随机推荐

  • R 条件面板对输出做出反应

    我正在尝试使用 R 中精彩的 Shiny 库构建一个应用程序 我希望它为用户生成一些错误和状态消息 为了使其正常工作 我将条件面板与输出对象上的一些布尔标志结合使用 以呈现错误和状态消息的面板 根据文档 这个策略应该对我有用 但事实并非如此
  • 每次我进行更改时如何告诉 Visual Studio 进行重建?

    当我点击播放或运行可执行按钮时 如何告诉 Visual Studio 每次进行更改时进行重建 我正在尝试 C 应用程序 我想你正在寻找这个工具 选项 项目和解决方案 我不知道您可以将其配置为 重建 与 构建 相比 一种选择是录制宏 然后为其
  • MySQL是否在Having上使用索引?

    我的查询的一部分如下所示 HAVING date gt 2011 04 13 04 28 03 日期变量被索引了 这对查询有什么影响吗 EXPLAIN EXTENDED 似乎没有使用索引 但我不知道这是否只是因为我正在测试的数据库中有 4
  • Kendo TabStrip:获取选定事件的选定索引(MVC 4)

    我的TabStrip如下 Html Kendo TabStrip Name tabApplications Items items gt items Add Text Online Selected true items Add Text
  • 与 knex 的未定义数据库连接

    我正在执行以下脚本 node acl js acl js require dotenv config const require lodash const buckets require buckets const knex require
  • 堆叠 matplotlib 条中的替代颜色

    我正在 matplotlib 中生成堆积条形图 在 Windows 7 上使用 Python 2 7 由于我想用它来成对比较两个数据集中的数据 因此我想为每个第二个条形使用不同的颜色 谁能告诉我如何实现这一目标 我的条形图基本上如下所示 i
  • 如何导入文件夹中的所有文件?

    假设我在一个文件夹中有一堆 dart 脚本 有什么我可以做的吗import foo dart 附 如果我有一个文件名数组并想要导入这些文件怎么办 您需要单独导入每个库 您可以做的是创建一个导入所有其他库并重新导出它们的库 然后 您可以导入这
  • 使用append/3谓词创建SPARQL参数化查询

    与我之前的帖子相关 如何在 SWI Prolog 中参数化 SPARQL 查询 https stackoverflow com questions 16820606 how to parameterize a sparql query in
  • Android 应用程序不显示在模拟器上

    我使用 eclipse 制作了一个 android 应用程序 当我开始开发我的应用程序时它运行良好 但是 当我继续开发应用程序时 模拟器似乎没有在我对代码进行更改之前更新应用程序 所以我尝试删除我的 avd 并在每次运行我的应用程序时创建一
  • NSFetchedResultsController 加上 NSBatchUpdateRequest 等于 NSMergeConflict。我做错了什么?

    I got a NSFetchedResultsController我使用一个设置NSManagedObjectContext 我使用此上下文执行获取 我也有一个NSBatchUpdateRequest我使用相同的设置NSManagedOb
  • 为什么我不能在异步函数中“yield from”?

    在Python 3 6中 我可以使用yield在协程内 但是我无法使用yield from 下面是我的代码 在第 3 行 我等待另一个协程 在第 4 行我尝试yield from一份文件 为什么 Python 3 6 不允许我这样做 asy
  • Rails 使用带有表单和验证包含的数组

    尝试获得一些关于使用数组进行表单选择的最佳方法的好建议 但使用相同的数组来测试包含的验证 现在我有了它 但在元素和验证中构建数组 即 Form Model validates status inclusion gt in gt w live
  • AutoMapper - 条件和前提条件有什么区别

    假设使用 AutoMapper 进行映射 如下所示 mapItem ForMember to gt to SomeProperty from gt from Condition x gt FromType x SourceValue Oth
  • 如何在 Macosx 10.9 上安装 PIL?

    当我尝试在 Macosx 10 9 2 上安装 PIL 库时 出现以下错误 如何安装它 sudo pip 安装枕头 cc fno strict aliasing fno common dynamic arch x86 64 arch i38
  • 如果机器人在 botframework v4 中空闲 5 分钟,如何向用户发送消息

    如果我在直线网络聊天频道中 5 分钟后没有收到用户的任何消息 我想发送提示 我正在等待 它是演示机器人 所以我使用本地内存存储 任何帮助 将不胜感激 有几种方法可以解决这个问题 如果您通过脚本调用它 使用类似使用 Directline 通道
  • 如何使用 MailMessage 向多个收件人发送电子邮件

    我在 SQL Server 中存储了多个电子邮件收件人 当我在网页中单击 发送 时 它应该向所有收件人发送电子邮件 我使用分隔电子邮件 以下是有效的单一收件人代码 MailMessage Msg new MailMessage MailAd
  • startForegroundService() 没有调用 startForeground(),但它确实调用了

    我有Context startForegroundService did not then call Service startForeground 在我的 Android 服务中 但我不明白为什么会发生这种情况 我的应用程序用于媒体流 只
  • Netbeans 错误锁定文件存在

    任何人都可以帮助我 我的 netbeans 8 0 1 有问题 我无法卸载 有一条错误消息 C Users X AppData Roaming Netbeans 8 0 1 lock 中存在锁定文件 删除该锁定文件 并卸载
  • 已安装 PowerShell 搜索软件

    我试图让这个 ForEach 循环使用注册表搜索来搜索计算机上安装的特定软件 由于某种原因 即使我知道并且可以看到它们已安装 但只能找到一个而不是其他两个 有什么错过了 Clear Host Computers hostname array
  • 当我“新建”ObservableCollection 时,它会失去绑定

    我的 UI 上有一个 ListBox 它绑定到 ObservableCollection 的属性 我将 ObservableCollection 的新实例设置到视图模型构造函数中的属性中 并且可以使用表单上的按钮向其中添加项目 这些在列表中