다음을 통해 공유


ChangeReason 열거형

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

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

구문

‘선언
Public Enumeration ChangeReason
public enum ChangeReason

멤버

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

설명

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", missing], "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 네임스페이스