У меня есть класс Person и Address. Класс Person имеет такие свойства, как Имя, Пол и т. Д. И Адрес. Класс Address имеет такие свойства, как Street, City, как строки. Если у меня есть коллекция Person под названием "people", то есть List (Of Person). И я связываю «людей» с DataGrid в WPF. Столбец «Имя» в порядке, но столбец «Город» всегда пуст.
Class Address
Sub New()
End Sub
Private _city As String
Property City() As String
Get
Return _city
End Get
Set(ByVal value As String)
_city = vaule
End Set
End Property
End Class
Class Person
Sub New()
End Sub
Private _name As String = ""
Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = vaule
End Set
End Property
Private _address As Address
Property Address() As Address
Get
Return _address
End Get
Set(ByVal value As Address)
_address = vaule
End Set
End Property
End Class
Под событием Window_Loaded у меня есть
Dim people As List(of Person) = _DAL.GetAllPeople()
Me.myDataGrid.ItemsSource = people
Dim nameBinding As Binding = New Binding
nameBinding.Path = New PropertyPath("Name")
Me.nameColumn.Binding = nameBinding 'This works fine in datagrid
Dim addressBinding As Binding = New Binding
addressBinding.Path = New PropertyPath("Address.City")
Me.cityColumn.Binding = addressBinding 'This does not work
КОД XAML:
<DataGrid x:Name="myDataGrid" HorizontalAlignment="Left" Margin="8,177.4,0,38" Width="240" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn x:Name="nameColumn" CanUserResize="False" IsReadOnly="True" Header="Name" Width="100"/>
<DataGridTextColumn x:Name="cityColumn" CanUserResize="False" Header="City" IsReadOnly="True" Width="*" />
</DataGrid.Columns>
</DataGrid>