首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的ListView无法读取由普通List<T>生成的ObservableCollection<T>中的项目

问题描述: 我的ListView无法读取由普通List<T>生成的ObservableCollection<T>中的项目。

解答: ListView是一个用于显示集合数据的控件,而ObservableCollection<T>是一种特殊的集合类型,它实现了INotifyCollectionChanged接口,可以在集合发生变化时通知绑定的控件更新。

如果你的ListView无法读取由普通List<T>生成的ObservableCollection<T>中的项目,可能是因为ListView没有正确地绑定到ObservableCollection<T>。

首先,确保你的ListView的ItemsSource属性已经正确地绑定到ObservableCollection<T>。你可以在XAML中使用绑定表达式,或者在代码中动态设置ItemsSource属性。

例如,在XAML中绑定ItemsSource属性:

代码语言:txt
复制
<ListView ItemsSource="{Binding MyCollection}" />

或者在代码中动态设置ItemsSource属性:

代码语言:txt
复制
myListView.ItemsSource = MyCollection;

其次,确保你的ListView的ItemTemplate定义了正确的数据模板,以便正确地显示ObservableCollection<T>中的项目。

例如,如果你的ObservableCollection<T>中的每个项目都有一个Name属性,你可以定义一个数据模板来显示这个属性:

代码语言:txt
复制
<ListView.ItemTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Name}" />
    </DataTemplate>
</ListView.ItemTemplate>

最后,如果你的ObservableCollection<T>在运行时发生了变化,你需要确保它正确地通知ListView更新。ObservableCollection<T>会自动发送集合变化的通知,但如果你修改了集合中的某个项目的属性,而不是整个集合本身,你需要确保该属性实现了INotifyPropertyChanged接口,以便通知ListView更新。

总结: 要使ListView能够读取由普通List<T>生成的ObservableCollection<T>中的项目,你需要正确地绑定ItemsSource属性,并定义正确的数据模板来显示项目的属性。同时,确保ObservableCollection<T>能够正确地通知ListView更新,以便及时显示变化。

推荐的腾讯云相关产品:

  • 云服务器(CVM):提供可扩展的计算能力,用于部署和运行应用程序。
  • 云数据库 MySQL版(CDB):提供高性能、可扩展的关系型数据库服务。
  • 云存储(COS):提供安全、可靠、低成本的对象存储服务,用于存储和访问各种类型的数据。
  • 人工智能机器学习平台(AI Lab):提供丰富的人工智能算法和工具,帮助开发者构建和训练自己的机器学习模型。

更多腾讯云产品信息,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UWP 和 WPF 不同,ListView 绑定集合修改顺序时,UI 刷新规则

UWP 和 WPF 不同,ListView 绑定集合修改顺序时,UI 刷新规则 2017-10-20 00:14 ObservableCollection... 中有一个 Move 方法,而这个方法在其他类型集合是很少见。...由于 ObservableCollection 主要用于绑定,涉及到 UI 更新,而 UI 更新普遍比普通集合修改慢了不止一个数量级,所以可以大胆猜想,Move 存在是为了提升 UI 刷新性能...然而事实真是这样吗? ---- 试验 将 ObservableCollection 用于 UI 绑定目前只有 UWP 和 WPF,于是写了两个 App 来验证这个问题。...在 WPF ListView 为此所做判断仅一处,就是其基类 ItemsControl 类 AdjustItemInfos 方法。

2.2K10

WPF 多线程下跨线程处理 ObservableCollection 数据

对象和修改或添加数据,完成之后再加入到 UI 线程 为了方便说明,本文新建了一个项目,本文所有代码都可以在本文后面找到获取方法 添加一个简单界面来方便说明,代码如下 ...接下来进入 ListView.ItemsSource = list 也就是将 list 交给 UI 线程,在此单一时刻,也只有 UI 线程,一个线程在访问 在将 ObservableCollection...只有在调用 ListView.ItemsSource = list 代码之后,才将 ObservableCollection 关联到 UI 线程。...读取 ObservableCollection 列表元素内容,不会涉及到访问 UI 元素,因此可以在后台线程进行读取列表元素,读取列表元素也就是等于可以对原有的列表拷贝一份 这里需要再次说明 ObservableCollection...元素,自己实现代码大概如下 public class FooList : Collection, INotifyCollectionChanged { protected override

3.7K10
  • win10 uwp 通知列表

    在 C# 很少直接使用数组,因为数组难以指定类型,需要指定类型,一般都会使用 List 。而 List 就叫他列表,继承 ICollection 类,一般就可以叫列表。...但是在使用 ListView 直接给 List 作为 Source ,那么只会在初次显示,之后无论对 List 进行什么修改,都不会导致界面的列表项修改。...,只需要进行和List一样添加或移除元素就可以。...如果对于上面的说法觉得还是不行,那么深一点,来解释一下 ListView 是如何知道 ObservableCollection 修改了。...于是就来写一个,很简单代码 首先需要给他一个名字,这里是随意给。 但是命名是需要时间,经过很久,想到诡异名字。 需要做一个泛型,然后继承 Collection 和通知。

    63120

    win10 uwp 通知列表

    在 C# 很少直接使用数组,因为数组难以指定类型,需要指定类型,一般都会使用 List 。而 List 就叫他列表,继承 ICollection 类,一般就可以叫列表。...但是在使用 ListView 直接给 List 作为 Source ,那么只会在初次显示,之后无论对 List 进行什么修改,都不会导致界面的列表项修改。...,只需要进行和List一样添加或移除元素就可以。...如果对于上面的说法觉得还是不行,那么深一点,来解释一下 ListView 是如何知道 ObservableCollection 修改了。...于是就来写一个,很简单代码 首先需要给他一个名字,这里是随意给。 但是命名是需要时间,经过很久,想到诡异名字。 需要做一个泛型,然后继承 Collection 和通知。

    64610

    WPF 做一个超级简单 1024 数字接龙游戏

    此时点击列表下方 “点击” 按钮,即表示将最右边数字放在这一列表 如下图,就是点击了首个列表“点击”按钮,将上图 1024 数字放在首个列表里 如下图,首个列表里面的最后一个是 2 数字,最右边数字也是...{ get; } = new ObservableCollection(); 在 CecaqemdarYefarqukeafai.xaml 界面写一个 ListView 进行绑定这个 Collection...> 这里绑定是 ElementName=Root 方式,这是习惯使用方法。...根据游戏规则,此时咱就需要再生成最右侧数字了。...如上文可以知道,最右侧数字是使用数组和索引表示,那就是随机生成一个在数组范围内索引就可以了。

    9510

    win10 uwp 如何使用DataTemplate 转换绑定Event到Command绑定 ObservableCollectionDataTemplate 绑定 ViewM

    这是数据模板,一般用在数组绑定,显示数组元素。... 转换器名称是:ConvertBooleanNull 假如我们放在 Model 里,命名空间是 项目.Model,我们需要先在...> 绑定 ObservableCollection 如果绑定 ItemSource 是一般 List ,那么在 List 内容改变无法看到,界面修改 需要修改 List 内容,修改页面,添加一个新...item 可以在页面添加一个 项,不是在初始时候进行修改,可以使用方法: 在修改之后 使用 listView.Itemsource=list 方法,重新给 Itemsource ,这是不推荐,...绑定 ListObservableCollection ,这样就可以在绑定内容修改时修改 界面。

    2.6K20

    win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序 VisualStudio创建项目引用项目创建通用结构设置控制器运行网站UWP 连接上传数据

    点击安装,可以去睡觉,明天再看我博客。因为 VisualStudio 安装是很慢,如果发现因为自己网站无法访问,需要代理,可以发邮件给我,发一个代理给你。...现在决定做这个项目读取现有的小伙伴网站和名字,添加新名字和网站记录。...如果没有按照上面的方法来,那么这一步可能就无法继续。本文下面的也就无法继续。如果实在不知道怎么弄,欢迎在评论告诉。 ? 点击下拉,可以找到 RoqawzemJajene 这个类 ?...本文不会告诉大家很多关于 ViewModel 方法,如果想了解这个写法,请看win10 uwp MVVM入门 ViewModel 现在需要定义一个数据结构,ObservableCollection 列表...如果发现还是无法运行,看到界面和我不一样。那么尝试下载代码来试试。 如果遇到任何问题欢迎通过评论告诉,或发邮件给我。

    1.3K10

    04Prism WPF 入门实战 - Module

    下图为Prism体系关系结构图。...在Prism体系Module应用分为 注册/发现模块 加载模块 初始化模块 2.详细内容 (1)注册/发现模块 通过重写CreateModuleCatalog方法指定加载module方式,这里个人比较推荐使用反射方式去指定目录下读取...首先我们将项目module编译生成项目运行目录下Apps文件夹下。 这时需要在类库右键->点击属性。 将DLL编译生成时拷贝到,指定目录下(详情见源码)。...", innerException); } } } (3)初始化模块 这些代码在使用Prism项目模板创建Module时候就已经自动创建好了。...Grid.Column="1" prism:RegionManager.RegionName="ContentRegion"/> MainWindowViewModel实现

    41010

    win10 uwp 简单MasterDetail

    本文是很简单,一般和我一样渣都能大概知道。 代码是在很大压力会议上写,不到一个钟,写完修改,和大家说。很简单,可以修改代码,可以自己写,下面来说下如何写。...一般可以自己写一个,不过通过修改代码会让你更加理解 首先我们需要Model,这是你自己定义,随便写 然后打开ViewModel,我们里面关键ObservableCollection,这是列表...首先新建 Model,放下随意类,作为显示内容,然后在ViewModel使用ObservableCollection,当然给他也是随意 在界面我们需要Grid,这时绑定了GridLength...x:Bind,要OneWay List 需要使用 Grid 控制他位置和背景,因为 List 背景透明,其实List 也可以用背景,但是想我会在 List 做弹出,最后想着用 Grid...We make the list’s background white,so if the list zindex is grerater than content and we can’t see content

    41020

    win10 uwp 列表模板选择器 根据数据位置根据不同数据

    如果在 UWP 需要定义某些列显示和其他列不同,或者某些行显示和其他行不同,那么可以使用 列表模板选择器 来定义自己列表,让列表存在不同显示。...分为两个不同方向来讲,第一个方向是根据数据所在位置不同,选择不同显示。第二个方向是根据数据不同。...实际把很多属性去掉就可以做出比较好效果,但是选中修改颜色还需要后台写。这是修改 Template 可以直接复制使用。...这时需要显示男生身高和女生年龄,可以看到这时 DataTemplate 难以按照不同数据显示。于是接下来,就告诉大家如何让列表显示不同数据。...源代码:https://github.com/lindexi/kechengbiao 如果需要所有源代码,请联系因为现在csdn上传需要审查,总是无法上传 参见:win10 uwp 如何使用DataTemplate

    1.2K10

    win10 uwp 简单MasterDetail UWP 导航List点击后退按钮页面更改大小修改显示修改代码源码左右列表和内容相互操作

    本文是很简单,一般和我一样渣都能大概知道。 代码是在很大压力会议上写,不到一个钟,写完修改,和大家说。很简单,可以修改代码,可以自己写,下面来说下如何写。...一般可以自己写一个,不过通过修改代码会让你更加理解 首先我们需要Model,这是你自己定义,随便写 然后打开ViewModel,我们里面关键ObservableCollection,这是列表...首先新建 Model,放下随意类,作为显示内容,然后在ViewModel使用ObservableCollection,当然给他也是随意 在界面我们需要Grid,这时绑定了GridLength...x:Bind,要OneWay List 需要使用 Grid 控制他位置和背景,因为 List 背景透明,其实List 也可以用背景,但是想我会在 List 做弹出,最后想着用 Grid...We make the list’s background white,so if the list zindex is grerater than content and we can’t see content

    1.9K00

    C# WPF mvvm模式下combobox绑定(list、Dictionary)

    ComboBox是一个非常常用界面控件,它数据源ItemsSource既可以绑定一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。...01 — 前言 ComboBox是一个非常常用下拉菜单界面控件,它数据源ItemsSource既可以绑定一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。...首先,讲解几个常用属性概念: ItensSource:用于指定下拉列表绑定List数据对象; SelectedIndex :下拉列表中选中行索引; DisplayMemberPath...:下拉列表要显示List数据对象列,因为List数据对象可能会有多列; SelectedValuePath:下拉列表,对应与显示List数据对象列,返回List数据对象列...; 02 — 绑定ObservableCollection ① 第一种情况T为一个普通学生类时: 类定义: public class Students { public

    5.3K10
    领券