WPF ListView项数正确但无法显示Kniha对象属性值的问题
解决WPF ListView无法绑定Kniha对象属性的问题
问题根源
WPF的数据绑定系统仅支持绑定到公共属性(Property),而你的Kniha类中所有成员都是公共字段(Field),包括Autor、Nazev等,这就是绑定提示“未找到Autor属性”的核心原因。集合能正确加载对象(所以项数显示正常),但绑定引擎无法访问字段值。
修改方案
将Kniha类中的所有字段改为带getter的公共属性(当前场景只读属性即可满足显示需求,若后续需双向绑定可再扩展setter和属性变更通知)。
修改后的Kniha类代码:
public class Kniha { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string ID { get; set; } public string Nazev { get; set; } public string Autor { get; set; } public int RokVydani { get; set; } public int PocetStran { get; set; } public int PocetVytisku { get; set; } public byte[] Obrazek { get; set; } public Kniha(string nazev, string autor, int rok, int pocetStran, int pocetVytisku, byte[] obrazek, string id = "") { ID = id == "" ? new BsonID().Id.ToString() : id; Nazev = nazev; Autor = autor; RokVydani = rok; PocetStran = pocetStran; PocetVytisku = pocetVytisku; Obrazek = obrazek; } }
额外优化建议
如果后续需要Kniha对象属性变更时自动更新UI,可以让Kniha类实现INotifyPropertyChanged接口,添加和MainVM一致的属性变更通知逻辑,确保数据变更能实时同步到界面。
内容的提问来源于stack exchange,提问作者Zdeňka Kolářová
相关产品推荐
相关产品推荐

