다음을 통해 공유


ChangeReason 열거형

원래 데이터가 데이터에 바인딩된 ListObject로 복원된 이유를 제공합니다.

네임스페이스:  Microsoft.Office.Tools.Excel
어셈블리:  Microsoft.Office.Tools.Excel(Microsoft.Office.Tools.Excel.dll)

구문

‘선언
Public Enumeration ChangeReason
public enum ChangeReason

멤버

멤버 이름 설명
DataBoundColumnHeaderIsAutoSet ListObject 컨트롤의 AutoSetDataBoundColumnHeaders 속성이 true로 설정되어 있으면 ListObject 컨트롤에서 사용자가 열 머리글을 변경할 수 없습니다.
ErrorInCommit ListObject 컨트롤의 데이터에 대한 변경 내용을 컨트롤이 바인딩된 데이터 소스에 커밋할 수 없습니다.
FixedLengthDataSource ListObject 컨트롤이 바인딩된 데이터 소스에서 행 추가 또는 제거를 허용하지 않습니다.
FixedNumberOfColumnsInDataBoundList ListObject 컨트롤은 데이터에 바인딩된 후 열 추가 또는 제거를 허용하지 않습니다.
Other 다른 ChangeReason 값으로 지정되지 않은 이유로 인해 원래 데이터가 복원되었습니다.
ReadOnlyDataSource ListObject 컨트롤이 바인딩된 데이터 소스는 읽기 전용입니다.

설명

ListObject가 데이터에 바인딩되어 있고 사용자가 허용되지 않는 작업을 수행할 때 ListObject는 자동으로 이전 상태로 복원되고 OriginalDataRestored 이벤트가 발생합니다.ChangeReason 열거형에서는 이 복원이 발생한 이유에 대한 정보를 제공합니다.

예제

다음 코드 예제에서는 DataTableListObject를 만들고 DataTableListObject를 바인딩합니다.그런 다음 OriginalDataRestored 이벤트 처리기를 만듭니다.이 이벤트를 테스트하려면 시트 1에서 ListObject 위의 열 문자를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 삭제를 클릭합니다.이벤트 처리기는 열 및 열 머리글 데이터를 대체한 다음 복원된 데이터의 종류와 원래 데이터의 복원 이유를 알려 주는 메시지를 표시합니다.

이 예제는 문서 수준 사용자 지정을 위한 것입니다.

    WithEvents OriginalDataRestoredList As _
        Microsoft.Office.Tools.Excel.ListObject
    Private Sub ListObject_OriginalDataRestored()
        ' Create a new DataSet and DataTable.
        Dim ds As New DataSet()
        Dim dt As DataTable = ds.Tables.Add("Customers")
        Dim lastName As New DataColumn("LastName")
        dt.Columns.Add(lastName)
        dt.Columns.Add(New DataColumn("FirstName"))

        ' Add two new rows to the DataTable.
        Dim dr1 As DataRow = dt.NewRow()
        dr1("LastName") = "Chan"
        dr1("FirstName") = "Gareth"
        dt.Rows.Add(dr1)
        Dim dr2 As DataRow = dt.NewRow()
        dr2("LastName") = "Nitsche"
        dr2("FirstName") = "Sonja"
        dt.Rows.Add(dr2)

        ' Create a list object.
        OriginalDataRestoredList = Me.Controls.AddListObject( _
            Me.Range("A1"), "OriginalDataRestoredList")

        ' Bind the list object to the DataTable.
        OriginalDataRestoredList.AutoSetDataBoundColumnHeaders = True
        OriginalDataRestoredList.SetDataBinding(ds, "Customers", _
            "LastName", "FirstName")
    End Sub

    Private Sub List1_OriginalDataRestored(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs) _
        Handles OriginalDataRestoredList.OriginalDataRestored
        MessageBox.Show("This data is bound to a data source and " & _
        "will be restored. This change is: " & e.ChangeType.ToString() & _
        ". The reason is: " & e.ChangeReason.ToString() + ".")
    End Sub

private void ListObject_OriginalDataRestored()
{
    // Create a new DataSet and DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    DataColumn lastName = new DataColumn("LastName");
    dt.Columns.Add(lastName);
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add two new rows to the DataTable.
    DataRow dr1 = dt.NewRow();
    dr1["LastName"] = "Chan";
    dr1["FirstName"] = "Gareth";
    dt.Rows.Add(dr1);
    DataRow dr2 = dt.NewRow();
    dr2["LastName"] = "Nitsche";
    dr2["FirstName"] = "Sonja";
    dt.Rows.Add(dr2);

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1"], "list1");

    // Bind the list object to the DataTable.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.SetDataBinding(ds, "Customers", "LastName",
        "FirstName");

    // Create the event handler.
    list1.OriginalDataRestored += new 
        Microsoft.Office.Tools.Excel.
        OriginalDataRestoredEventHandler(list1_OriginalDataRestored);
}

void list1_OriginalDataRestored(object sender, 
    Microsoft.Office.Tools.Excel.OriginalDataRestoredEventArgs e)
{
    MessageBox.Show("This data is bound to a data source and " +
    "will be restored. This change is: " + e.ChangeType.ToString() +
    ". The reason is: " + e.ChangeReason.ToString() + ".");
}

참고 항목

참조

Microsoft.Office.Tools.Excel 네임스페이스