You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ObservableCollection绑定ListView异常求助:XAML绑定无效但代码赋值可行

WPF ListView绑定ObservableCollection失效的问题解决

你的问题主要出在三个核心点上,逐个梳理解决:

1. 数据绑定仅支持公共属性,不支持字段

WPF的数据绑定系统只识别公共属性,你当前的items是公共字段(public ObservableCollection<dataModel> items;),XAML绑定无法识别它。必须将其改为带getter的公共属性:

public ObservableCollection<dataModel> items { get; set; }

2. 未设置DataContext,绑定找不到数据源

XAML里的{Binding items}默认不知道要绑定到哪个对象,因为窗口默认DataContext为null。你需要明确指定数据源:

方法一:在构造函数中设置

修改MainWindow构造函数,在InitializeComponent()后添加:

DataContext = this;

完整构造函数示例:

public MainWindow()
{
    items = new ObservableCollection<dataModel>();
    InitializeComponent();
    DataContext = this;
    populateData();
}

方法二:在XAML中直接指定绑定源

给ListView的Binding添加RelativeSource,直接指向当前窗口:

ItemsSource="{Binding items, RelativeSource={RelativeSource AncestorType=Window}}"

3. 关于“基类可见性低于其他类”的错误

你提到的这个错误,大概率是dataModel类的可见性不匹配导致的。如果dataModel是internal,而ObservableCollection的属性是public,就会因为泛型参数可见性低于属性而报错。确保dataModel始终为public即可:

public class dataModel
{
    public string title { get; set; }
    public bool isDone { get; set; }
}

验证修改

完成以上调整后,XAML的绑定即可正常生效,无需再通过代码手动赋值LV1.ItemsSource = items;。

内容的提问来源于stack exchange,提问作者vastyr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:21:33