【问题标题】:Append binding data not replace with binding data附加绑定数据不替换为绑定数据
【发布时间】:2011-09-14 12:52:19
【问题描述】:

我有一个 TextBlock Text 目标,其业务对象为 Binding Source,并且在 INotifyPropertyChanged 的帮助下,此绑定适用于传播到 GUI 的业务对象属性更新

目标

这种绑定的默认行为是替换控件的内容,这样对业务属性的第二次更新将覆盖第一次更新的显示。

我希望 UI 显示第一个更新,然后追加第二个更新等等,这怎么可能?

一个实现?

  1. 我什至不熟悉 wpf 控件的基本库,使用 TextBlock 以外的控件会更容易吗?

  2. 或者是否可以使用 TextBlock 进行这种绑定?

业务对象不希望记住/存储以前的更新。 我已经尝试在IValueConverter Convert 方法中使用object parameter,但这不起作用...

【问题讨论】:

    标签: c# wpf data-binding wpf-controls


    【解决方案1】:

    您可以使用 mvvm 模式并采用视图模型从您的业务对象中收集 propertychanged 事件数据。

    在这个视图模型中创建一个

    ObservableCollection<string>_myUpdateList = new ObservableCollection<string>();
    

    收集数据的权利。

    在 UI(View) 方面,我会使用 itemscontrol、listbox 或类似的东西并将 ItemsSource 绑定到您的 ObservableCollection。

    仅此而已。 :)

    【讨论】:

    • 甜蜜!你碰巧知道我怎么能让列表框换行吗?即我曾经能够做到textBlock1.TextWrapping = TextWrapping.WrapWithOverflow;,但现在可以做到listBox1.ItemsSource = _myUpdateList;
    • 例如看stackoverflow.com/questions/146269/…。您可以使用 WrapWithOverflow 修改 itemtemplate 文本块。如果这不起作用,请在 SO 上提出一个新问题
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多