XamScheduleで予定表の部分をダブルクリックしたときに、ダブルクリックされた時間枠であったり予定であったりオーナーであったり、情報を取得したい場合があると思います。

その場合は、XamScheduleDataManagerのActivityDialogDisplayingイベントを使って取得してください。

なお、XamScheduleViewの予定表部分をダブルクリックしたときの既定の動作は、予定の新規追加および既存予定の編集をするためのダイアログを開く、というものです。そのため、このイベントも、本来の意味としては、そのダイアログが開く際に発生するイベントとなります。もし情報取得だけしたいのであってダイアログは開きたなくない、という場合は、このイベントをキャンセルしてダイアログが開くのを抑止してください。

<!-- MainWindow.xaml -->
<ig:XamScheduleDataManager ...
    ActivityDialogDisplaying="dataManager_ActivityDialogDisplaying">
    <!-- 中略 --->
</ig:XamScheduleDataManager>
// MainWindow.xaml.cs
private void dataManager_ActivityDialogDisplaying(object sender, ActivityDialogDisplayingEventArgs e)
{
    // オーナーや予定、時間枠の情報を取得する。
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("Resource: ID=" + e.Activity.OwningResourceId + ", Name=" + e.Activity.OwningResource.Name);
    sb.AppendLine("Timeslot: Start=" + e.Activity.Start.ToLocalTime().ToString("yyyy/MM/dd HH:mm") + ", End=" + e.Activity.End.ToLocalTime().ToString("yyyy/MM/dd HH:mm"));
    sb.AppendLine("Task: ID=" + e.Activity.Id + ", Subject=" + e.Activity.Subject);

    MessageBox.Show(sb.ToString());

    // (任意)イベントをキャンセルしてダイアログが開くのを抑止する。
    e.Cancel = true;
}

 

実行結果

 

サンプル

リファレンス

 

Tagged:

製品について

Ultimate UI for WPF