バージョン

MS プロジェクト XML ファイルからプロジェクト プランを読み込み

トピックの概要

目的

このトピックでは、Microsoft Project™ 2010 XML ファイルに保存された、すでに作成済みのプロジェクト計画を xamGantt™ コントロールで読み込む方法について説明します。

前提条件

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

トピック 目的

このトピックでは、 xamGantt コントロールをページに追加する方法を説明します。

MS プロジェクト XML ファイルからプロジェクト プランを読み込み

はじめに

この手順では、 xamGantt コントロールで MS Project 2010 XML ファイルを読み込む方法を説明します。

プレビュー

以下のスクリーンショットはその結果のプレビューです。

LoadingXMLFile1.png

手順

以下の手順では、 xamGantt で XML プロジェクトを読み込む方法を説明します。

  1. XAML での xamGantt コントロールの追加

xamGantt コントロールを Grid コンテナーの最初の行に追加します。

XAML の場合:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="22" />
    </Grid.RowDefinitions>
    <ig:XamGantt x:Name="gantt" />
    <!-- Add other controls here -->
</Grid>
  1. ボタンを追加して、プロジェクトの XML ファイルを参照するためのダイアログを開きます

Button コントロールを Grid コンテナーの 2 番目の行に追加します。

XAML の場合:

<Button x:Name="Btn_LoadProject"
        Grid.Row="1"
        Content="Load XML Project File"
        Click="Btn_LoadProject_Click"/>
  1. コードビハインドでの必要な参照の追加

コード ビハインドで次の using および Imports 宣言を追加します。

C# の場合:

using System;
using System.IO;
using System.Windows;
using Infragistics;
using Infragistics.Controls.Schedules;

Visual Basic の場合:

Imports System.IO
Imports Infragistics
Imports Infragistics.Controls.Schedules
Imports Microsoft.Win32
  1. ボタン クリック イベントの処理

XML プロジェクト ファイルを開くためのボタンクリック イベントを処理します。

  1. xamGantt でのプロジェクトの読み込み

Project LoadFromProjectXml メソッドを使用して、ストリームからプロジェクトを読み込みます。

詳細については、コード例: xamGantt コントロールへのプロジェクトの読み込みを参照してください。

コード例

コード例の概要

以下の表は、このトピックで使用したコード例をまとめたものです。

解説

コード例では、OpenFileDialog クラスを使用して XML ファイルを開き、Stream オブジェクトを取得しています。

コード例では、Stream オブジェクトからプロジェクトを読み込んでいます。

コード例: XML ファイルを参照するためのボタンクリック イベントの処理

解説

以下のコード例は、XML プロジェクト ファイルを検索して開き、Stream オブジェクトに変換する方法を示しています。

コード

C# の場合:

using Microsoft.Win32;
private void Btn_LoadProject_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.Multiselect = false;
    dialog.InitialDirectory = "c:\\";
    dialog.Filter = "MS Project XML (.xml)|*.xml|All Files (*.*)|*.* ";
    bool? isOpened = dialog.ShowDialog();
    if (isOpened == true)
    {
        try
        {
            using (Stream stream = dialog.OpenFile())
            {
                LoadProjectFromStream(stream);
                stream.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

Visual Basic の場合:

Imports Microsoft.Win32
Private Sub Btn_LoadProject_Click(sender As Object, e As RoutedEventArgs)
    Dim dialog As New OpenFileDialog()
    dialog.Multiselect = False
    dialog.InitialDirectory = "c:\"
    dialog.Filter = "MS Project XML (.xml)|*.xml|All Files (*.*)|*.* "
    Dim isOpened As System.Nullable(Of Boolean) = dialog.ShowDialog()
    If isOpened = True Then
        Try
            Using stream As Stream = dialog.OpenFile()
                LoadProjectFromStream(stream)
                stream.Close()
            End Using
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End If
End Sub

コード例: Project を xamGantt コントロールに読み込む

解説

以下のコード例は、前のコード例で作成された Stream オブジェクトからプロジェクトを読み込む方法を示しています。

Project LoadFromProjectXml メソッドは、Stream をパラメーターとして使用します。

コード

C# の場合:

private void LoadProjectFromStream(Stream stream)
{
    // Create a xamGantt Project and load project data from the resulting Stream
    var project = new Project();
    // Load a project from stream
    project.LoadFromProjectXml(stream);
    this.gantt.VisibleDateRange = new DateRange(project.Start, project.Finish);
    this.gantt.Project = project;
}

Visual Basic の場合:

Private Sub LoadProjectFromStream(stream As Stream)
    ' Create a xamGantt Project and load project data from a Stream
    Dim project = New Project()
    ' Load a project from stream
    project.LoadFromProjectXml(stream)
    Me.gantt.VisibleDateRange = New DateRange(project.Start, project.Finish)
    Me.gantt.Project = project
End Sub

関連コンテンツ

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

トピック 目的

このトピックは、 xamGantt コントロールのデータ バインディングの概要を説明します。

このトピックでは、Project プロパティによって xamGantt  コントロールをデータにバインドする方法を説明します。

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