バージョン

その他のイベントとイベント引数

トピックの概要

目的

このトピックでは、 xamGantt™ コントロールにおけ共通のユーザー インタラクションで起動して利用できるイベントについて解説します。

前提条件

このトピックの本題に入る前に、以下のトピックをお読みください。

トピック 目的

このトピックでは、ListBackedProject で xamGantt コントロールを任意のタスク コレクションにバインドする方法を説明します。

XamGantt の構成イベントの要旨

XamGantt の構成イベントの要旨チャート

以下の表は、 xamGantt コントロール ユーザー インターフェイスの操作時に呼び出されるイベントです。

これらのイベントには、その発生順序に応じて接尾辞 "ing" または "ed" が追加されます。

(-ing) イベントは取り消し可能で、(-ed) イベントの前に呼び出されます。

コード例: マイルストーンのドラッグの取り消し

解説

以下のコード スニペットでは、マイルストーンのドラッグを無効にする方法を紹介します。

XamGantt TaskBarDragging イベントを処理して、タスクがマイルストーンであるかどうかを確認し、マイルストーンであれば、そのドラッグを取り消します。

コード

XAML の場合:

<ig:ListBackedProject x:Name="dataProvider" TaskItemsSource="{Binding Tasks}">
    <ig:ListBackedProject.TaskPropertyMappings>
        <!-- Add Project Task Property Mappings Here -->
    </ig:ListBackedProject.TaskPropertyMappings>
</ig:ListBackedProject>
<ig:XamGantt x:Name="gantt"
             Project="{Binding ElementName=dataProvider}"
             TaskBarDragging="gantt_TaskBarDragging"/>

C# の場合:

private void gantt_TaskBarDragging(object sender, GanttTaskBarDraggingEventArgs e)
{
    // If a task is a milestone, prevent dragging
    if (e.Task.IsMilestone)
    {
        e.Cancel = true;
    }
}

Visual Basic の場合:

Private Sub gantt_TaskBarDragging(sender As Object, e As GanttTaskBarDraggingEventArgs)
    ' If a task is a milestone, prevent dragging
    If e.Task.IsMilestone Then
        e.Cancel = True
    End If
End Sub

プロジェクト構成イベントの要旨

プロジェクト構成イベントの要旨チャート

以下の表は、プロジェクトおよびプロジェクト タスクを変更するときに発生される Project クラス イベントを表示します。

これらのイベントには、その発生順序に応じて接尾辞 "ing" または "ed" が追加されます。

(-ing) イベントは取り消し可能で、(-ed) イベントの前に呼び出されます。どちらのイベントもイベントに関連付けられた ProjectTask に関する情報を伝えます。

目的: 使用するイベント: イベント引数で伝える情報:

サマリー タスクの折り畳みを処理

タスクの削除を処理

サマリー タスクの展開を処理

タスクのインデントを処理

タスクの挿入を処理

タスクのアウトデントを処理

コード例: タスク削除の確定

解説

以下のコード スニペットでは、ユーザーのアクションに応じて、タスクの削除を確定したり、取り消す方法を紹介します。

xamGantt グリッド領域のタスクでマウスを右クリックすると、[削除] オプションとともにコンテキスト メニューが表示されます。選択したタスクの削除をユーザーが選択すると、[OK] と [キャンセル] という 2 つのボタン オプションがあるメッセージ ボックスが表示されます。ユーザーが [キャンセル] ボタンをクリックすると、削除イベントは取り消されます。ユーザーが [OK] ボタンをクリックすると、そのタスクは削除されます。

注:

Note

複数のタスクを 1 回の操作で削除できます。以下の例のコードは、削除したすべてのタスクに対して実行されます。

コード

XAML の場合:

<ig:ListBackedProject x:Name="dataProvider"
                      TaskItemsSource="{Binding Tasks}"
                      TaskDeleting="dataProvider_TaskDeleting">
    <ig:ListBackedProject.TaskPropertyMappings>
        <!-- Add Project Task Property Mappings Here -->
    </ig:ListBackedProject.TaskPropertyMappings>
</ig:ListBackedProject>
<ig:XamGantt x:Name="gantt"
             Project="{Binding ElementName=dataProvider}" />

C# の場合:

using Infragistics.Controls.Schedules;
private void dataProvider_TaskDeleting(object sender, ProjectTaskDeletingEventArgs e)
{
string msg = String.Format("Are you sure you want to delete {0} task?", e.Task.TaskName);
MessageBoxResult result = MessageBox.Show(msg, "Confirmation", MessageBoxButton.OKCancel);
    if (result == MessageBoxResult.Cancel)
    {
        // Cancel task deletion
        e.Cancel = true;
    }
}

Visual Basic の場合:

Imports Infragistics.Controls.Schedules
Private Sub dataProvider_TaskDeleting(sender As System.Object, e As ProjectTaskDeletingEventArgs)
  Dim msg As String = [String].Format("Are you sure you want to delete {0} task?", e.Task.TaskName)
Dim result As MessageBoxResult = MessageBox.Show(msg, "Confirmation", MessageBoxButton.OKCancel)
    If result = MessageBoxResult.Cancel Then
        ' Cancel task deletion
        e.Cancel = True
    End If
End Sub

関連コンテンツ

このトピックについては、以下のトピックも参照してください。

トピック 目的

このトピックでは、 xamGantt コントロール内の現在アクティブなセル、列または行の設定または取得に使用されるプロパティとイベントについて説明します。

このトピックでは、 xamGantt コントロールにおけ共通のユーザー インタラクションで起動して利用できるイベントについて解説します。