#vb.net #winforms #data-binding
#vb.net #winforms #привязка данных
Вопрос:
<Serializable()>
Public Class PersonNameOnly
Private p_Name As String = ""
Public Sub New()
' needed for deserialization
End Sub
Public Property Name As String
Get
Return p_Name
End Get
Set(value As String)
p_Name = value
End Set
End Property
End Class
[WinForm]
Приведенный PersonNameOnly
выше класс является привязанным типом BindingSource к PersonUsercontrolForPersonWithNameOnly
пользовательскому элементу управления, имя привязано к a Textbox
.
MainUsercontrolForPersonWithNameOnly
имеет коллекцию PersonUsercontrolForPersonWithNameOnly
Все вышеперечисленное отлично работает в существующем приложении.
Мне нужно создать новую форму MainUsercontrolForPersonWITHIMAGE
, поэтому я создал новую UserControl
, которая наследует PersonUsercontrolForPersonWithNameOnly
, и добавил a Label
, который содержит ImageUrl, так что это то, что я сделал до сих пор ниже.
<Serializable()>
Public Class PersonWITHIMAGE
Inherits PersonNameOnly
Private p_ImageUrl As String = ""
Public Sub New()
' needed for deserialization
End Sub
Public Property ImageUrl As String
Get
Return p_ImageUrl
End Get
Set(value As String)
p_ImageUrl = value
End Set
End Property
End Class
[WinForm]
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class PersonUsercontrolForPersonWITHIMAGE
Inherits PersonUsercontrolForPersonWithNameOnly
Как я могу объединить две привязки данных, как если бы это был один источник, мне удается получить имя только для работы с формой верхнего уровня с коллекцией, но я не уверен, как синхронизировать данные с именем только пользовательского элемента управления.
Как я могу объединить две привязки данных в одну составную форму?
Ответ №1:
Похоже, вы хотите привязаться к двум разным типам, один из которых является базовым типом другого. Я не думаю, что вы можете это сделать.
Но смотрели ли вы на использование интерфейса, например IPersonUsercontrolForPerson
, и на основе каждого класса на нем? Это должно открыть возможность абстрагирования вашей привязки элемента управления.
Отказ от ответственности!Этот ответ должен служить отправной точкой, поскольку я на самом деле не закодировал для вас тест / ответ. Но вот где я бы начал искать.
Комментарии:
1. Спасибо, у вас есть какие-либо ссылки на примеры или образцы, пожалуйста?
2. Я упустил ключевую деталь, что классы были <Serializable()> для XML, поэтому у меня были некоторые проблемы с интерфейсами, поэтому я искал альтернативное решение