首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ItemSource绑定到列表框

将ItemSource绑定到列表框
EN

Stack Overflow用户
提问于 2013-06-02 20:54:04
回答 3查看 128关注 0票数 0

这个问题以前可能已经问过很多次了,但我已经看到了太多的答案,我真的不知道该怎么做。

我有一个ListBox:

代码语言:javascript
运行
复制
<listbox ItemSource="{Binding listitems}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <grid>
                <Textblock text="{Binding value1}">
                <Textblock text="{Binding value2}">
            </grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</listbox>

我有一个以下类的列表:

代码语言:javascript
运行
复制
List<Items> listitems = new List<Items>();
public class Items
{
    public string value1 { get; set; }
    public string value2 { get; set; }
}

有时,列表会更新(添加了更多元素),我想让列表框知道列表已经更新,并相应地更新UI。

此时,我手动将列表绑定到c#中的列表框,当它发生变化时,我清除列表框并重新添加列表,这并不是我们所希望的。

我想知道列表框是如何自动更新的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-02 21:02:42

使用ObservableCollection代替一般的List<T>,它在内部实现了负责更新UI上元素的INotifyCollectionChanged接口。

代码语言:javascript
运行
复制
ObservableCollection<Items> listitems = new ObservableCollection<Items>();

编辑

ListItems必须为property。你不能用field绑定它-

代码语言:javascript
运行
复制
ObservableCollection<Items> listitems = new ObservableCollection<Items>();
public ObservableCollection<Items> Listitems
{
   get
   {
      return listitems;
   }
   set
   {
      listItems = value;
   }
}

XAML -

代码语言:javascript
运行
复制
<Listbox ItemSource="{Binding Listitems}">
票数 0
EN

Stack Overflow用户

发布于 2013-06-02 21:07:39

您必须将List更改为ObservableCollection,并根据MVVM模式实现所有内容。

代码语言:javascript
运行
复制
public ObservableCollection<Items> Listitems 
{
    get { return _listitems ; }
    set
    {
        _listitems  = value;
        RaisePropertyChanged(() => Listitems );
    }
}

您必须对Items中的每个属性执行相同的操作。也可以使用Prism进行绑定。你可以在网上找到很多不错的教程,比如this

票数 0
EN

Stack Overflow用户

发布于 2013-06-02 21:44:11

如果你使用List,那么你必须使用INotifypropertyChanged来通知,否则你可以使用ObservableCollection。

还必须使用NotifyOnSourceUpdated=True。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16882952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档