首页
学习
活动
专区
工具
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...T> 中有一个 Move 方法,而这个方法在其他类型的集合中是很少见的。...由于 ObservableCollectionT> 主要用于绑定,涉及到 UI 更新,而 UI 更新普遍比普通的集合修改慢了不止一个数量级,所以可以大胆猜想,Move 的存在是为了提升 UI 刷新性能...然而事实真是这样的吗? ---- 试验 将 ObservableCollectionT> 用于 UI 绑定的目前只有 UWP 和 WPF,于是我写了两个 App 来验证这个问题。...在 WPF 中,ListView 为此所做的判断仅一处,就是其基类 ItemsControl 类的 AdjustItemInfos 方法。

2.3K10

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

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

4K10
  • win10 uwp 通知列表

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

    63320

    win10 uwp 通知列表

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

    64610

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

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

    9810

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

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

    2.7K20

    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中的实现

    42710

    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

    41620

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

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

    1.3K10

    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
    领券