vb.net WPF将列表框绑定到(MyClass的)可观察集合

vb.net WPF将列表框绑定到(MyClass的)可观察集合,wpf,vb.net,listbox,Wpf,Vb.net,Listbox,因此,我可以创建(MyClass的)ObservableCollection并声明它是公共属性。单击按钮后将创建此集合。如何将listbox控件绑定到它?这是我的密码: Public Property StaticFailingPinListItem As New ObservableCollection(Of PinNameAndImageLocation) <ListBox Name="StaticFailingPinListBox" Grid.Row="1" Gri

因此,我可以创建(MyClass的)ObservableCollection并声明它是公共属性。单击按钮后将创建此集合。如何将listbox控件绑定到它?这是我的密码:

    Public Property StaticFailingPinListItem As New ObservableCollection(Of PinNameAndImageLocation)

    <ListBox Name="StaticFailingPinListBox" Grid.Row="1" Grid.Column="0" MinHeight="150" MinWidth="220" 
                                    FontSize="12" Margin="3" ItemsSource="{Binding}" />
公共属性StaticFailingPinListItem作为新的ObservableCollection(属于PinNameAndImageLocation)
PinName和ImageLocation有2个属性:PinName和ImageLocation。 我想将PinName属性显示为列表框中的项。。 任何帮助都将不胜感激。

1)在
YourClass
类中声明
StaticFailingPinListItem
集合属性,并在类中实现

2) 将
窗口.DataContext
设置为该类的实例:

DataContext = new YourClass
3) 绑定到XAML中的该属性:

<ListBox ItemsSource="{Binding StaticFailingPinListItem}" ... />

这就是你需要做的。

你试过
StaticFailingPinListBox.ItemsSource=yourObservableCollection
你试过
ItemSource=“{Binding StaticFailingPinListItem}”DisplayMemberPath=“PinName”
^别忘了实现
INotifyPropertyChanged
。你能进一步解释一下你的第一点吗?这是否意味着我必须在自己创建的类中声明一个集合属性,而不是在我的主用户控件中声明一个集合属性?虽然可能不需要只为一个属性声明集合属性,但通常创建一个类来表示窗口或
UserControl
的所有数据。然后使用
INotifyPropertyChanged
接口通知UI在此类中所做的属性更改。
Public Overrides Function ToString() As String
    Return PinName 
End Function