构建程序时ListView控件无法显示数据的技术问题咨询
解决ListView无法显示数据的问题
我来帮你排查下这个问题,大概率是这几个地方没处理对:
先改ItemsSource的绑定方式
你现在写的ItemsSource="items"是把字符串"items"当成了数据源,这完全不对哦!得改成绑定语法,让ListView去读取你后台的集合数据:<ListView Name="alkoholCjenik" ItemsSource="{Binding items}" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Background="#FF4AC1A7" BorderBrush="{x:Null}" Foreground="#FF042271" FontFamily="Sitka Small">必须给GridView添加列
你的GridView里是空的,就算有数据也没地方展示啊!得给每个要显示的属性定义列,比如假设你的数据对象有Naziv(名称)和Cijena(价格)这两个属性,就这么写:<ListView.View> <GridView> <GridViewColumn Header="Naziv" DisplayMemberBinding="{Binding Naziv}" Width="150"/> <GridViewColumn Header="Cijena" DisplayMemberBinding="{Binding Cijena}" Width="100"/> </GridView> </ListView.View>记得把
Naziv和Cijena换成你实际数据类里的属性名。用ObservableCollection存数据
后台的items别用普通的List<T>,换成ObservableCollection<T>,这样数据添加、删除时UI会自动更新。比如后台代码这么写:// 先定义你的数据类 public class AlcoholItem { public string Naziv { get; set; } public double Cijena { get; set; } } // 窗口类里的集合 public ObservableCollection<AlcoholItem> items { get; set; } public YourWindow() { InitializeComponent(); // 初始化集合并加测试数据 items = new ObservableCollection<AlcoholItem>(); items.Add(new AlcoholItem { Naziv = "Craft Beer", Cijena = 7.99 }); // 把当前窗口设为数据上下文,让ListView能找到items this.DataContext = this; }检查ItemContainerStyle的语法
你写的<EventSet应该是<EventSetter>吧?如果这部分语法写错了,也可能导致控件异常,没法正常显示数据,记得把这部分补全写对。
内容的提问来源于stack exchange,提问作者dikario
相关产品推荐
相关产品推荐

