DataBinding クラスとは? わかりやすく解説

DataBinding クラス

Microsoft Visual Studio などの RAD (Rapid Application Development) デザイナデザイン時にデータ バインディング式を作成できるようにする ASP.NET サーバー コントロール単一データ バインディングに関する情報格納します。このクラス継承できません。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

解説解説
使用例使用例

DataBinding オブジェクト作成しpropertyName パラメータの値が Text である、コントロールDataBindingCollection コレクション既存オブジェクト同じようにこのオブジェクト設定する例を次に示しますpropertyName の値が TextDataBinding オブジェクトコレクション含まれている場合、このコードは、オブジェクトExpression プロパティの値を返しますそのようなオブジェクトない場合は、空の文字列 ("") が返されます。

' 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
// 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 extends 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.
    /** @property 
     */
    public String get_Text()
    {
        DataBinding myBinding = get_DataBindings().get_Item("Text");
        if (myBinding != null) {
            return myBinding.get_Expression();
        }
        return("");
    } //get_Text

    /** @property 
     */
    public void set_Text(String value)
    {
        if (value == null || value.get_Length()
 == 0) {
            get_DataBindings().Remove("Text");
        }
        else {
            DataBinding binding = get_DataBindings().get_Item("Text");
            if (binding == null) {
                binding = new DataBinding("Text", String.class.ToType(),
 value);
            }
            else {
                binding.set_Expression(value);
            }

            // Call the DataBinding constructor, then add
            // the initialized DataBinding object to the 
            // DataBindingCollection for this custom designer.
            DataBinding binding1 = (DataBinding)(get_DataBindings().
                get_SyncRoot());
            get_DataBindings().Add(binding);
            get_DataBindings().Add(binding1);
        }
        OnBindingsCollectionChanged("Text");
    } //set_Text

    // Override the OnBindingsCollectionChanged class to create
    // the data-binding expression and associate it with 
    // a property on the control created by the designer.
    protected void OnBindingsCollectionChanged(String
 propName)
    {
        IHtmlControlDesignerBehavior myHtmlControlDesignBehavior = 
            get_Behavior();
        DataBindingCollection myDataBindingCollection;
        DataBinding myDataBinding1, myDataBinding2;
        String myStringReplace1, myDataBindingExpression1, removedBinding, 
        removedBindingAfterReplace, myDataBindingExpression2, myStringReplace2;
        String removedBindings1[], removedBindings2[];
        int 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 = 
            get_DataBindings());

        if (propName != null) {
            myDataBinding1 = myDataBindingCollection.get_Item(propName);
            myStringReplace1 = propName.Replace(".", "-");
            if (myDataBinding1 == null) {
                myHtmlControlDesignBehavior.RemoveAttribute(myStringReplace1, 
                    true);
                return;
            }

            // DataBinding is not null.
            myDataBindingExpression1 = String.Concat("<%#", myDataBinding1.
                get_Expression(), "%>");
            myHtmlControlDesignBehavior.SetAttribute(myStringReplace1, 
                myDataBindingExpression1, true);
            int index = myStringReplace1.IndexOf("-");
        }
        else {
            // Use the DataBindingCollection.RemovedBindings 
            // property to set the value of the removedBindings
            // arrays.
            removedBindings2 = (removedBindings1 = get_DataBindings().
                get_RemovedBindings());

            temp = 0;
            while (removedBindings2.length > temp) {
                removedBinding = removedBindings2[temp];
                removedBindingAfterReplace = removedBinding.Replace('.', '-');
                myHtmlControlDesignBehavior.RemoveAttribute(
                    removedBindingAfterReplace, true);
                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 = get_DataBindings();
        IEnumerator myEnumerator = myDataBindingCollection.GetEnumerator();
        while (myEnumerator.MoveNext()) {
            myDataBinding2 = (DataBinding)(myEnumerator.get_Current());
            String dataBindingOutput1, dataBindingOutput2, dataBindingOutput3;
            dataBindingOutput1 = String.Concat("The property name is ",
 
                myDataBinding2.get_PropertyName());
            dataBindingOutput2 = String.Concat("The property type is ",
 
                myDataBinding2.get_PropertyType().ToString(), "-", 
                dataBindingOutput1);
            dataBindingOutput3 = String.Concat("The expression is ", 
                myDataBinding2.get_Expression(), "-", dataBindingOutput2);
            WriteToFile(dataBindingOutput3);
            myDataBindingExpression2 = String.Concat("<%#", myDataBinding2.
                get_Expression(), "%>");
            myStringReplace2 = myDataBinding2.get_PropertyName().
                Replace(".", "-");
            myHtmlControlDesignBehavior.SetAttribute(myStringReplace2, 
                myDataBindingExpression2, true);
            int index = myStringReplace2.IndexOf("-");
        } // while loop ends
    } //OnBindingsCollectionChanged
    
    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();
        ubyte byteArray[] = encoder.GetBytes(input);
        char charArray[] = encoder.GetChars(byteArray);
        myFile.WriteLine(charArray, 0, input.get_Length());
        myFile.Close();
    } //WriteToFile
継承階層継承階層
System.Object
  System.Web.UI.DataBinding
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataBinding メンバ
System.Web.UI 名前空間
DataBinder クラス
DataBindingCollection
IDataBindingsAccessor



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataBinding クラス」の関連用語

DataBinding クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataBinding クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS