列表框不显示数据

本文关键字:数据 显示 列表 | 更新日期: 2023-09-27 18:16:42

这是我的列表框的XAML

<ListBox Height="100" Margin="12,12,8,0" Name="CategoriesList" VerticalAlignment="Top">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBox Text="{Binding Id}" Visibility="Collapsed" />
                    <TextBox Text="{Binding Title}" FontSize="40" IsReadOnly="True"/>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

这是我的类

public class Categories 
{
    string Id { get; set; }
    string Title { get; set; }
    public Categories() { }
    public Categories(string value, string text) 
    {
        this.Id = value;
        this.Title = text;
    }
}

下面是带有虚拟数据的赋值代码

        List<Categories> categoriesList = new List<Categories>();
        categoriesList.Add(new Categories("1", "One"));
        categoriesList.Add(new Categories("2", "Two"));
        categoriesList.Add(new Categories("3", "Three"));
        categoriesList.Add(new Categories("4", "Four"));
        categoriesList.Add(new Categories("5", "Five"));
        CategoriesList.ItemsSource = categoriesList;

列表是空白的,但项目是5,这意味着标题不显示…你能帮我一下吗

列表框不显示数据

正如@Ku6opr所言,将变量设为公共使列表运行…多亏了他

public class Categories 
{
    public string Id { get; set; }
    public string Title { get; set; }
    public Categories() { }
    public Categories(string value, string text) 
    {
        this.Id = value;
        this.Title = text;
    }
}

您需要设置/绑定ListBoxItemSource属性到一个公共类别列表,如下所示ItemSource = {Binding categoreslist}

由此判断(无论它在哪里):

List<Categories> categoriesList = new List<Categories>();
        categoriesList.Add(new Categories("1", "One"));
        categoriesList.Add(new Categories("2", "Two"));
        categoriesList.Add(new Categories("3", "Three"));
        categoriesList.Add(new Categories("4", "Four"));
        categoriesList.Add(new Categories("5", "Five"));
        CategoriesList.ItemsSource = categoriesList;

你正在使用一个本地声明的List变量。

同样,如果你打算以任何方式改变列表内容,那么如果你的Categories列表是ObservableCollection,你会发现事情更容易。