C# 如何在WPF窗口上显示保存在列表对象中的对象的链接列表

C# 如何在WPF窗口上显示保存在列表对象中的对象的链接列表,c#,wpf,list,C#,Wpf,List,我对c#编程和WPF都是新手。这是我的第一个项目。 我有一个我创建的宠物对象列表,名为myPets,可以由程序用户更改(新宠物对象可以在运行时添加到列表中),我希望在窗口中显示指向该列表中每个对象的链接(该链接将打开一个名为WatchPet的新窗口,该窗口将向屏幕显示该对象)。我知道如何处理单个对象,或者处理一个不变的对象列表,但是如果列表不断变化,我该如何处理呢?我应该使用列表、网格或其他数据对象吗 您可以使用ObservableCollection而不是List 例如: Observable

我对c#编程和WPF都是新手。这是我的第一个项目。
我有一个我创建的宠物对象列表,名为myPets,可以由程序用户更改(新宠物对象可以在运行时添加到列表中),我希望在窗口中显示指向该列表中每个对象的链接(该链接将打开一个名为WatchPet的新窗口,该窗口将向屏幕显示该对象)。我知道如何处理单个对象,或者处理一个不变的对象列表,但是如果列表不断变化,我该如何处理呢?我应该使用列表、网格或其他数据对象吗

您可以使用ObservableCollection而不是List

例如:

ObservableCollection<Pet> pets = new ObservableCollection<Pet>();
ObservableCollection pets=新的ObservableCollection();
在可观察集合中添加/删除或更改项时,您拥有的任何绑定都将自动刷新

更多信息

编辑:

为此,您需要执行以下操作:

  • 将ItemsSource绑定更改为“{binding MyPets}”(MyPets是类中xaml文件后面的公共属性,指向真实集合)
  • 将DataTemplate添加到列表中,如下所示:

    <ListBox {...}>
      <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name"}/>
            <!--You can modify this template to suit your needs.-->
         </DataTemplate>
       </ListBox.ItemTemplate>
    </ListBox>
    
    
    
  • 在xaml文件后面的类的构造函数中,必须设置DataContext=this

  • 问候,,
    Mishu是你的朋友:谢谢你的回答。然而,我使用窗口而不是窗体,我遇到了一个问题。这是我的列表:
    myPets=newobservedcollection()它作为字段存在于另一个名为User的对象内的名为interface的类中。因此,链接到它的方式如下:
    mypets.ItemsSource=MainWindow.program.\u currUser.mypets
    但我要做的是在列表中的每个
    Pets
    对象内,在我的listview中显示字段
    name
    。我不能。这是xaml:
    谢谢。我像你说的那样尝试过,但是VS10不接受xaml。在类型列表框中找不到
    。也许我需要包括一些我不知道的东西?(cs页面确实包含
    System.Windows.Controls
    )尝试将该声明添加到
    。Mishu,非常感谢您的帮助!现在可以了,问题出在代码的另一部分。非常感谢!