ListView 项目不显示
Posted
技术标签:
【中文标题】ListView 项目不显示【英文标题】:ListView items not displaying 【发布时间】:2022-01-22 02:32:45 【问题描述】:在我的 xamarin 表单应用程序中,我输入了应该在 ListView 中显示的书名。但是 ListView 中没有一行,我不知道我在哪里犯了错误。我同时使用 Prism 和 MVVM。
这里是 xaml
<ListView SeparatorColor="Black"
ItemsSource="Binding BookList"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="Binding BookName" FontAttributes="Bold"/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
还有一个列表和方法,在按下按钮后调用。
private BookModel book = new BookModel();
private ObservableCollection<BookModel> _bookList = new ObservableCollection<BookModel>();
private ObservableCollection<BookModel> BookList
get return _bookList ;
set SetProperty(ref _bookList , value);
public async override void getBook(string data)
book = new BookModel
BookName = data
;
BookList.Add(book);
和模型
public class BookModel
public string BookName get; set;
以前对我有用的只是一个没有任何数据模板的简单 ListView,并通过BookList.Add(data)
将书添加到列表中,其中data
是我在应用程序中输入的内容。
【问题讨论】:
你确定getBook()
被调用了吗? data
的值从何而来?
就像我最后说的 data
是我在应用程序中输入的内容(在这种情况下是书名),getBook()
被调用,因为调用它的方式没有改变,我使用了它之前成功。我进行了调试,data
一切正常。
ObservableCollection 应该是公共属性。如果你想使用绑定
@TomášZachoval 谢谢.. 我什至没有注意到我将其设置为私有:D
【参考方案1】:
在 cmets 中,OP 说公开收藏属性解决了这个问题。他们需要改变这一点:
private ObservableCollection<BookModel> BookList
到这里:
public ObservableCollection<BookModel> BookList
这是基于@Tomáš Zachoval's comment。
【讨论】:
以上是关于ListView 项目不显示的主要内容,如果未能解决你的问题,请参考以下文章