【问题标题】:Linq to SQL Compact - Update bindingLinq to SQL Compact - 更新绑定
【发布时间】:2009-10-27 13:45:46
【问题描述】:

当我将 ListBox 的 ItemsSource 设置为表格的内容时,如下所示:

this.listBox.ItemsSource = db.Table;

列表框中的项目不会自动更新。添加、删除或更改项目时,如何自动更新 ListBox?当收藏发生变化时,我还能收到事件吗?

【问题讨论】:

    标签: wpf linq-to-sql binding


    【解决方案1】:

    看看 ObservableCollection。我正在使用它来更新/添加/删除列表视图。当我更改 ObservableCollection 时,列表视图会收到通知。

    【讨论】:

    • 我知道 ObservableCollection,但是如何通知 ObservableCollection 插入和其他操作?我必须手动完成所有这些吗?是否有某种库在调用 InsertOnSubmit 或 SubmitChanges 时自动引发 ObservableCollection 的更改通知事件?
    • 对于插入,我使用 ObservableCollection.Add(newRec)。更新和删除也有类似的方法,但我的项目还没有走那么远。
    • 那么如果我向 ObservableCollection 添加一个项目,它会自动插入到数据库中吗?
    • 没有。添加到 ObservableCollection 将仅自动更新显示。我正在使用 linq2sql,所以我要做的是创建要添加的项目,调用我的 linq2sql 存储库类进行添加,然后添加到 observable。效果很好。然后当我关闭弹出窗口时,我让存储库类执行 SubmitChanges。这样,弹出用户可以做所有他们想要的添加/删除/编辑。但是,如果他们只是想取消所有内容,通过退出弹出窗口而不执行 SubmitChanges,则数据库不会更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多