2012-01-30 7 views
1

Я все еще участвую в том, как привязывать и использовать наблюдаемую коллекцию. Одна из проблем, с которой я немного запуталась, - привязать несколько классов/наблюдаемую коллекцию к одной странице. Другими словами, если у меня есть класс PersonName и класс AnimalName, я должен создать для него две отдельные коллекции observalbe? Как я могу установить datacontext, когда страница только позволяет?Как добавить несколько классов в наблюдаемую коллекцию

Например:

 Public Class NameList 
Inherits ObservableCollection(Of PersonName) 

' Methods 
Public Sub New() 
    MyBase.Add(New PersonName("Willa", "Cather")) 
    MyBase.Add(New PersonName("Isak", "Dinesen")) 
    MyBase.Add(New PersonName("Victor", "Hugo")) 
    MyBase.Add(New PersonName("Jules", "Verne")) 
End Sub 

End Class 

Public Class PersonName 
' Methods 
Public Sub New(ByVal first As String, ByVal last As String) 
    Me._firstName = first 
    Me._lastName = last 
End Sub 


' Properties 
Public Property FirstName() As String 
    Get 
     Return Me._firstName 
    End Get 
    Set(ByVal value As String) 
     Me._firstName = value 
    End Set 
End Property 

Public Property LastName() As String 
    Get 
     Return Me._lastName 
    End Get 
    Set(ByVal value As String) 
     Me._lastName = value 
    End Set 
End Property 


' Fields 
Private _firstName As String 
Private _lastName As String 
End Class 

Теперь Если добавить еще один класс, как бы я объединить два на связывающую часть и сбор части. Спасибо за любые советы :)

public class AnimalName 
    'properties, ect...ect..ect.. 
End class 

ответ

1

Вам необходимо сделать объект, который вы установили как DataContext, в качестве другого класса, который содержит коллекцию людей и коллекцию животных. Тогда ваши средства управления, которые отображают списки могут связать свои свойства ItemsSource соответствующих свойств в DataContext, такие как

ItemsSource="{Binding Path=Animals}" 

Вы не можете добавить их обоих к той же коллекции, если это не коллекция некоторого типа, что они оба (в конечном итоге все происходит от Object), но тогда вам нужно иметь дело с тем, как соответствующим образом отображать их в пользовательском интерфейсе.

Также, несмотря на то, что на странице есть DataContext, все внутри него также имеет DataContext, поэтому вы можете связать их по отдельности - иначе они просто наследуют DataContext от своего родителя.

1

Вы должны установить ItemSource х индивидуальное управление список, чтобы отделить ObservableCollections.

Смежные вопросы