如何更新ListBoxItem[使用datacontext]



我有以下类作为我的数据上下文

class s
{
public string name{get;set;}
public string family {get;set;}
public string status{get;set;}
}

我为listBoxItem制作了一个样式[添加了2个contentPresenter],以与我的数据上下文相匹配,我的意思是每个contentPresenters内容都设置为"{Binding?}"-?可以是姓名、家庭或身份。

我将此数据上下文设置为ListBoxItem,但当我更改数据上下文时,它不会显示

((s)(item.DataContext)).name="change";

但我看到一切都没有改变。

我用谷歌搜索了一下,但大多数问题与我的有点不同。

谨致问候,PK开发商

除了使用ObservableCollection,您还需要为类s实现INotifyPropertyChanged接口,并使用数据绑定将WPF窗口的元素绑定到类s的属性。

以下是关于如何实现INotifyPropertyChanged:的详细信息

http://msdn.microsoft.com/en-us/library/ms743695.aspx

和MSDN 上的Databnding概述

执行以下操作:

  1. 将ListBox的父元素的DataContext设置为ObservableCollection()SCollection或
  2. 将ListBox的ItemSource设置为{Binding}如果将DataContext设置为该值,则使用{BindingSColection}
  3. 将项目添加到ObservableCollection,ListBox将自动更新
  4. 然后只修改ObservableCollection中的项,而不是ListBox

实际上我真的不明白你的问题吗?是否要有一个显示s类型对象列表的Listbox?如果是这样的话,我会选择DataTemplates,就像我对这个问题的回答一样。

或者您有特殊情况,这迫使您直接为每个ListBoxItem设置绑定?

最新更新