DataBinding Classe

Definição

Contém informações sobre uma única expressão de associação de dados em um controle de servidor ASP.NET, que permite os designers do método RAD, como o Microsoft Visual Studio, criem expressões de associação de dados no tempo de design.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. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class DataBinding sealed
public sealed class DataBinding
type DataBinding = class
Public NotInheritable Class DataBinding
Herança
DataBinding

Exemplos

O exemplo de código a seguir cria um DataBinding objeto e o define como igual a um objeto existente na DataBindingCollection coleção do controle que tem um propertyName parâmetro com um valor de Text .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. Se a coleção contiver um DataBinding objeto com um propertyName valor de Text , esse código retornará o valor da Propriedade do objeto Expression .If the collection contains a DataBinding object with a propertyName value of Text, this code returns the value of the object's Expression property. Se não houver tal objeto, ele retornará uma cadeia de caracteres vazia ("").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 : 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 string Text
    {
        get
        {
            DataBinding myBinding = DataBindings["Text"];
            if (myBinding != null)
            {
                return myBinding.Expression;
            }
            return String.Empty;
        }
        set
        {

            if ((value == null) || (value.Length == 0))
            {
                DataBindings.Remove("Text");
            }
            else
            {

                DataBinding binding = DataBindings["Text"];

                if (binding == null)
                {
                    binding = new DataBinding("Text", typeof(string), value);
                }
                else
                {
                    binding.Expression = value;
                }
                // Call the DataBinding constructor, then add
                // the initialized DataBinding object to the 
                // DataBindingCollection for this custom designer.
                DataBinding binding1 = (DataBinding)DataBindings.SyncRoot;
                DataBindings.Add(binding);
                DataBindings.Add(binding1);
            }
            PropertyChanged("Text");
        }
    }
    protected void PropertyChanged(string propName)
    {
        IControlDesignerTag myHtmlControlDesignBehavior = this.Tag;
        
        DataBindingCollection myDataBindingCollection;
        DataBinding myDataBinding1, myDataBinding2;
        String myStringReplace1, myDataBindingExpression1, removedBinding, removedBindingAfterReplace, myDataBindingExpression2, myStringReplace2;
        string[] removedBindings1, removedBindings2;
        Int32 temp;

        if (myHtmlControlDesignBehavior == null)
            return;
        // 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.
        DataBindingCollection myDataBindingCollection1 = new DataBindingCollection();
        myDataBindingCollection1 = myDataBindingCollection = DataBindings;
        if (myDataBindingCollection.Contains(propName))
        {
            myDataBinding1 = myDataBindingCollection[propName];
            myStringReplace1 = propName.Replace(".", "-");
            if (myDataBinding1 == null)
            {
                myHtmlControlDesignBehavior.RemoveAttribute(myStringReplace1);
                return;
            }
            // DataBinding is not null.
            myDataBindingExpression1 = String.Concat("<%#", myDataBinding1.Expression, "%>");
            myHtmlControlDesignBehavior.SetAttribute(myStringReplace1, myDataBindingExpression1);
            int index = myStringReplace1.IndexOf("-");
        }
        else
        {
            // Use the DataBindingCollection.RemovedBindings 
            // property to set the value of the removedBindings
            // arrays.
            removedBindings2 = removedBindings1 = DataBindings.RemovedBindings;
            temp = 0;
            while (removedBindings2.Length > temp)
            {
                removedBinding = removedBindings2[temp];
                removedBindingAfterReplace = removedBinding.Replace('.', '-');
                myHtmlControlDesignBehavior.RemoveAttribute(removedBindingAfterReplace);
                temp = temp + 1;
            }
        }
        // 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;
        IEnumerator myEnumerator = myDataBindingCollection.GetEnumerator();

        while (myEnumerator.MoveNext())
        {
            myDataBinding2 = (DataBinding)myEnumerator.Current;
            String dataBindingOutput1, dataBindingOutput2, dataBindingOutput3;
            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);
            int index = myStringReplace2.IndexOf('-');
        }// while loop ends
    }
    public void WriteToFile(string input)
    {
        // The WriteToFile custom method writes
        // the values of the DataBinding properties
        // to a file on the C drive at design time.
        StreamWriter myFile = File.AppendText("C:\\DataBindingOutput.txt");
        ASCIIEncoding encoder = new ASCIIEncoding();
        byte[] ByteArray = encoder.GetBytes(input);
        char[] CharArray = encoder.GetChars(ByteArray);
        myFile.WriteLine(CharArray, 0, input.Length);
        myFile.Close();
    }
}
' 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
    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
End Class

Comentários

Cada expressão de vinculação de dados em um controle de servidor é representada em tempo de design por uma instância da DataBinding classe.Each data-binding expression in a server control is represented at design time by an instance of the DataBinding class. Qualquer controle de servidor que contenha uma ou mais expressões de associação de dados tem um DataBindingCollection objeto que contém os DataBinding objetos.Any server control that contains one or more data-binding expressions has a DataBindingCollection object that contains the DataBinding objects. Essa coleção pode ser acessada por meio da Control classe que implementa a IDataBindingsAccessor interface.This collection is accessible through the Control class implementing the IDataBindingsAccessor interface. Quando você cria um designer de RAD personalizado, use essa implementação para acessar a coleção.When you create a custom RAD designer, use that implementation to access the collection. Todos DataBinding os DataBindingCollection objetos ou associados a um controle de servidor existem somente no momento do design.Any DataBinding or DataBindingCollection objects associated with a server control exist only at design time. Eles não existem em tempo de execução e, portanto, não são acessíveis durante o tempo de execução.They do not exist at run time and, therefore, are not accessible during run time.

Construtores

DataBinding(String, Type, String)

Inicializa uma nova instância da classe DataBinding.Initializes a new instance of the DataBinding class.

Propriedades

Expression

Obtém ou define a expressão de associação de dados a ser avaliada.Gets or sets the data-binding expression to be evaluated.

PropertyName

Obtém o nome da propriedade de controle de servidor ASP.NET à qual associar dados.Gets the name of the ASP.NET server control property to bind data to.

PropertyType

Obtém o tipo do .NET Framework da propriedade de controle de servidor ASP.NET de associação de dados.Gets the .NET Framework type of the data-bound ASP.NET server control property.

Métodos

Equals(Object)

Determina se o objeto especificado é a mesma instância da classe DataBinding que o objeto atual.Determines whether the specified object is the same instance of the DataBinding class as the current object.

GetHashCode()

Recupera o código hash para uma instância do objeto DataBinding.Retrieves the hash code for an instance of the DataBinding object.

GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Aplica-se a

Confira também