選択されているタスクはXamGanttのSelectedRowsのTaskもしくはSelectedCellsのRowのTaskで取得できます。ただ、いずれの場合もこのTaskの型はIProjectTaskインターフェース型として定義されており、このままではParentにさかのぼれません。ProjectTaskにキャストすることでParentにさかのぼれますので、まずProjectTaskにキャストしてからParentのTasksで兄弟タスクを取得してください。

// 選択されているセルもしくは行のタスクをProjectTaskとして取り出す。
ProjectTask? selectedTask = (
    xamGantt1.SelectedCells.Count > 0 ?
        xamGantt1.SelectedCells[0].Row.Task :
        xamGantt1.SelectedRows.Count > 0 ?
            xamGantt1.SelectedRows[0].Task :
            null
    ) as ProjectTask;
// ProjectTaskとして取り出せなかったら何もしない。
if (selectedTask == null) return;

// 親のTasks(兄弟タスク)をProjectTaskのListとして取り出す。
List<ProjectTask> siblingTasks = selectedTask.Parent.Tasks.ToList();
// 各兄弟ProjectTaskに関して
foreach(var siblingTask in siblingTasks)
{
    // 情報を出力する。
    textBlock1.Text += $"Task Name: {siblingTask.TaskName}" + Environment.NewLine;
}

 

サンプル

 

Tagged:

製品について

Ultimate UI for WPF