DataBinding Class
Contains information about a single data-binding expression in an ASP.NET server control, which allows rapid-application development (RAD) designers, such as Microsoft Visual Studio, to create data-binding expressions at design time. This class cannot be inherited.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | DataBinding(String, Type, String) | Initializes a new instance of the DataBinding class. |
| Name | Description | |
|---|---|---|
![]() | Expression | Gets or sets the data-binding expression to be evaluated. |
![]() | PropertyName | Gets the name of the ASP.NET server control property to bind data to. |
![]() | PropertyType | Gets the .NET Framework type of the data-bound ASP.NET server control property. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is the same instance of the DataBinding class as the current object.(Overrides Object.Equals(Object).) |
![]() | GetHashCode() | Retrieves the hash code for an instance of the DataBinding object.(Overrides Object.GetHashCode().) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
Each data-binding expression in a server control is represented at design time by an instance of the DataBinding class. Any server control that contains one or more data-binding expressions has a DataBindingCollection object that contains the DataBinding objects. This collection is accessible through the Control class implementing the IDataBindingsAccessor interface. When you create a custom RAD designer, use that implementation to access the collection. Any DataBinding or DataBindingCollection objects associated with a server control exist only at design time. They do not exist at run time and, therefore, are not accessible during run time.
The following code example creates a DataBinding object and sets it equal to an existing object in the control's DataBindingCollection collection that has a propertyName parameter with a value of Text. If the collection contains a DataBinding object with a propertyName value of Text, this code returns the value of the object's Expression property. If there is no such object, it returns an empty string ("").
' Create the custom class that accesses the DataBinding and ' DataBindingCollection classes at design time. Public Class SimpleDesigner Inherits System.Web.UI.Design.ControlDesigner ' Create a Text property with accessors that obtain ' the property value from and set the property value ' to the Text key in the DataBindingCollection class. Public Property [Text]() As String Get Dim myBinding As DataBinding = DataBindings("Text") If Not (myBinding Is Nothing) Then Return myBinding.Expression End If Return String.Empty End Get Set(ByVal value As String) If value Is Nothing OrElse value.Length = 0 Then DataBindings.Remove("Text") Else Dim binding As DataBinding = DataBindings("Text") If binding Is Nothing Then binding = New DataBinding("Text", GetType(String), value) Else binding.Expression = value End If ' Call the DataBinding constructor, then add ' the initialized DataBinding object to the ' DataBindingCollection for this custom designer. Dim binding1 As DataBinding = CType(DataBindings.SyncRoot, DataBinding) DataBindings.Add(binding) DataBindings.Add(binding1) End If PropertyChanged("Text") End Set End Property Protected Sub PropertyChanged(ByVal propName As String) Dim myHtmlControlDesignBehavior As IControlDesignerTag = Me.Tag Dim myDataBindingCollection As DataBindingCollection Dim myDataBinding1, myDataBinding2 As DataBinding Dim myStringReplace1, myDataBindingExpression1, removedBinding, removedBindingAfterReplace, myDataBindingExpression2, myStringReplace2 As [String] Dim removedBindings1(), removedBindings2() As String Dim temp As Int32 If myHtmlControlDesignBehavior Is Nothing Then Return End If myDataBindingCollection = DataBindings ' Use the DataBindingCollection constructor to ' create the myDataBindingCollection1 object. ' Then set this object equal to the ' DataBindings property of the control created ' by this custom designer. Dim myDataBindingCollection1 As New DataBindingCollection() myDataBindingCollection1 = DataBindings myDataBindingCollection = DataBindings If (myDataBindingCollection.Contains(propName)) Then myDataBinding1 = myDataBindingCollection(propName) myStringReplace1 = propName.Replace(".", "-") If myDataBinding1 Is Nothing Then myHtmlControlDesignBehavior.RemoveAttribute(myStringReplace1) Return End If ' DataBinding is not null. myDataBindingExpression1 = [String].Concat("<%#", myDataBinding1.Expression, "%>") myHtmlControlDesignBehavior.SetAttribute(myStringReplace1, myDataBindingExpression1) Dim index As Integer = myStringReplace1.IndexOf("-") Else ' Use the DataBindingCollection.RemovedBindings ' property to set the value of the removedBindings ' arrays. removedBindings1 = DataBindings.RemovedBindings removedBindings2 = DataBindings.RemovedBindings temp = 0 While removedBindings2.Length > temp removedBinding = removedBindings2(temp) removedBindingAfterReplace = removedBinding.Replace("."c, "-"c) myHtmlControlDesignBehavior.RemoveAttribute(removedBindingAfterReplace) temp = temp & 1 End While End If ' Use the DataBindingCollection.GetEnumerator method ' to iterate through the myDataBindingCollection object ' and write the PropertyName, PropertyType, and Expression ' properties to a file for each DataBinding object ' in the MyDataBindingCollection object. myDataBindingCollection = DataBindings Dim myEnumerator As IEnumerator = myDataBindingCollection.GetEnumerator() While myEnumerator.MoveNext() myDataBinding2 = CType(myEnumerator.Current, DataBinding) Dim dataBindingOutput1, dataBindingOutput2, dataBindingOutput3 As [String] dataBindingOutput1 = [String].Concat("The property name is ", myDataBinding2.PropertyName) dataBindingOutput2 = [String].Concat("The property type is ", myDataBinding2.PropertyType.ToString(), "-", dataBindingOutput1) dataBindingOutput3 = [String].Concat("The expression is ", myDataBinding2.Expression, "-", dataBindingOutput2) WriteToFile(dataBindingOutput3) myDataBindingExpression2 = [String].Concat("<%#", myDataBinding2.Expression, "%>") myStringReplace2 = myDataBinding2.PropertyName.Replace(".", "-") myHtmlControlDesignBehavior.SetAttribute(myStringReplace2, myDataBindingExpression2) Dim index As Integer = myStringReplace2.IndexOf("-"c) End While ' while loop ends End Sub 'OnBindingsCollectionChanged Public Sub WriteToFile(ByVal input As String) ' The WriteToFile custom method writes ' the values of the DataBinding properties ' to a file on the C drive at design time. Dim myFile As StreamWriter = File.AppendText("C:\DataBindingOutput.txt") Dim encoder As New ASCIIEncoding() Dim ByteArray As Byte() = encoder.GetBytes(input) Dim CharArray As Char() = encoder.GetChars(ByteArray) myFile.WriteLine(CharArray, 0, input.Length) myFile.Close() End Sub 'WriteToFile End Class 'SimpleDesigner
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
.jpeg?cs-save-lang=1&cs-lang=vb)
.jpeg?cs-save-lang=1&cs-lang=vb)