添加项目时未显示WPF Listview

时间:2020-04-24 15:19:50

标签: c# wpf listview

我正在尝试将项目动态添加到WPF中的列表视图中,但是我不知道为什么要显示任何项目。尽管这是一个复习问题,所以我尝试使用一些ObservableCollection,但是它没有用。 我正在用两个文本框获取信息,并希望它们在单击按钮时显示在列表视图中。

您能帮我理解这个问题吗?

我的带有列表视图的WPF

<ListView Name="listview" Margin="0 10 0 0" Height="150" ItemsSource="{Binding Recette}">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding nomP}" Header="Nom" Width="250"/>
                    <GridViewColumn DisplayMemberBinding="{Binding quantP}" Header="Quantité" Width="100"/>

                </GridView>
            </ListView.View>
</ListView>

我的.cs:

public List<Produits> Recette { get; set; }
    public AjoutRecette()
    {
        InitializeComponent();
    }

    private void btnAjoutProd_Click(object sender, RoutedEventArgs e)
    {
        string nomP = combobProd.Text;
        int quantP = int.Parse(txtbQuantité.Text);
        Produits prod = new Produits(nomP, quantP);
        Recette.Add(prod);
    }

这是我已经尝试过的ObersvableCollection的内容:

public ObservableCollection<Produits> Recette { get; set; }
    public AjoutRecette()
    {
        InitializeComponent();
    }

    private void btnAjoutProd_Click(object sender, RoutedEventArgs e)
    {
        Recette = new ObservableCollection<Produits>();
        string nomP = combobProd.Text;
        int quantP = int.Parse(txtbQuantité.Text);
        Produits prod = new Produits(nomP, quantP);
        Recette.Add(prod);
    }

非常感谢!

1 个答案:

答案 0 :(得分:1)

要使其正常运行,请检查以下几点:

  1. 请将Recette的类型更改为ObservableCollection<Produits>,而不是List<Produits>。您将需要调整属性类型以及实例化集合的代码部分。 您可以轻松做到:

    public ObservableCollection<Produits> Recette { get; set; } = new ObservableCollection<Produits>();
    
  2. 确保正确设置DataContext属性。一种实现方法是在DataContext的构造函数中设置AjoutRecette

    public AjoutRecette()
    {
        InitializeComponent();
        listview.DataContext = this;
    }
    
  3. 此外,请确保nomP类中存在属性quantPProduits

祝你好运!

相关问题