我尝试显示在列表框上创建的列表,但我不知道如何
我有一堂课,将一本新书添加到列表中 C#代码
public class Manager
{
static List<Book> lstBook = new List<Book>();
public void AddBookM(int isbn, string author, string des, string name, float price, ushort quantity, DateTime dateTime, string edition)
{
Book book = new Book(isbn, author, des, name, price, quantity,dateTime, edition, new List<string> { "" });
lstBook.Add(book);
}
}
现在在XAML中,我想在ListBox和AutoSuggestBox中的列表中看到书籍,我想在列表中搜索书籍,这将为完成本书提供可能性 XAML代码
<AutoSuggestBox Name="SBSearchBtn" HorizontalAlignment="Center" Width="500" FontSize="20" BorderBrush="Black" Header="Search" PlaceholderText="Write here!" Margin="0,90,0,0" VerticalAlignment="Top" TextChanged="SBSearchBtn_TextChanged" QuerySubmitted="SBSearchBtn_QuerySubmitted" SuggestionChosen="SBSearchBtn_SuggestionChosen"/>
<ListBox Name="SearchList" Width="500" Margin="140,194,860,400" Background="WhiteSmoke" FontSize="25"/>
答案 0 :(得分:2)
要显示ListBox
中的项目,您需要执行以下操作:
首先,您需要为ListBox
定义项目模板,以便可以指定列表项目的外观。为简单起见,我仅绑定了name
类的author
和Book
属性。
XAML
<ListBox Name="SearchList">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding author}"></TextBlock>
<TextBlock Text="{Binding name}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我建议您使用ObservableCollection而不是仅使用List
,因为您希望根据用户搜索的内容来更新列表项。
private ObservableCollection<Book> lstBook = new ObservableCollection<Book>();
接下来,在页面的Loaded
事件(或根据需要可能需要的任何事件)中,将ItemSource
的{{1}}设置为您创建的ListBox
(ObservableCollection
。
listBook
您现在应该看到一个条目已添加到列表视图。在这种情况下使用private void Page_Loaded(object sender, RoutedEventArgs e)
{
//Setting item source of the list box
SearchList.ItemsSource = lstBook;
//Adding an entry to lstBook
AddBookM(1, "auth", "des", "name", 2.55f, 10, DateTime.Now, "edition");
}
的好处是,每当您更改(添加/删除)ObservableCollection
中的任何项目时,您的UI都会自动更新。
因此,当您再次调用ObservableCollection<Book> lstBook
时,您会看到新条目也已添加到AddBookM()
中。
希望这会有所帮助。
答案 1 :(得分:0)
您需要手动编写:
informations
您没有说您在说什么ListBox,所以我只是假设您在谈论Windows Forms库中的ListBox。
希望我能帮助您!