InputPanel for WPF
InputPanel と DataTable の連結
データ連結 > InputPanel と DataTable の連結

InputPanel は、データテーブルを使用したデータ連結をサポートします。標準の DataTable クラスを使用してデータテーブルを作成し、ItemsSource プロパティを設定することで、そのデータテーブルを InputPanel コントロールに連結することができます。

データテーブルを使用してデータに InputPanel を連結するには、次の手順を実行します。

  1. アプリケーションの設定
  2. InputPanel と連結するデータテーブルの作成
  3. InputPanel へのデータテーブルの連結

アプリケーションの設定

  1. WPF アプリケーションを作成します。
  2. InputPanel コントロールを追加し、それに 「InPanel」 という名前を付けます。

先頭に戻る

InputPanel と連結するデータテーブルの作成

  1. 新しいクラス Employee をアプリケーションに追加します。
  2. 次の import 文を追加します。
    Imports System.Data
    
    using System.Data;
    
  3. DataTable クラスのオブジェクト employee を作成します。
    'データテーブルを作成します
    Private _employees As DataTable = Nothing
    
    //データテーブルを作成します
    private DataTable employees = null;
    
  4. テーブルに追加するデータフィールドを追加します。
    'データフィールドを追加します
    Shared _rnd As New Random()
    Shared _firstNames As String() = "Andy|Ben|Charlie|Dan|Ed|Fred|Gil".Split("|"c)
    Shared _lastNames As String() = "Ambers|Bishop|Cole|Danson|Evers|Trask|Ulam".Split("|"c)
    Shared _countries As String() = "中国|インド|米国|日本|ミャンマー".Split("|"c)
    
    //データフィールドを追加します
    static Random _rnd = new Random();
    static string[] _firstNames = "Andy|Ben|Charlie|Dan|Ed|Fred|Gil".Split('|');
    static string[] _lastNames = "Ambers|Bishop|Cole|Danson|Evers|Trask|Ulam".Split('|');
    static string[] _countries = "中国|インド|米国|日本|ミャンマー".Split('|');
    
  5. データテーブルにフィールドを割り当てるクラス定義を追加します。
    'データテーブルを初期化します
    Public ReadOnly Property Employees() As DataTable
        Get
            If _employees Is Nothing Then
                _employees = New DataTable("従業員")
                _employees.Columns.Add("ID", System.Type.[GetType]("System.String"))
                _employees.Columns.Add("名", System.Type.[GetType]("System.String"))
                _employees.Columns.Add("姓", System.Type.[GetType]("System.String"))
                _employees.Columns.Add("国", System.Type.[GetType]("System.String"))
                _employees.Columns.Add("生年月日", System.Type.[GetType]("System.DateTime"))
    
                For row As Integer = 0 To 9
                    Dim dRow As DataRow = _employees.NewRow()
                    dRow("ID") = _rnd.[Next](100000, 999999).ToString()
                    dRow("名") = _firstNames(_rnd.[Next](_firstNames.Length))
                    dRow("姓") = _lastNames(_rnd.[Next](_lastNames.Length))
                    dRow("国") = _countries(_rnd.[Next](_countries.Length))
    
    
                    dRow("生年月日") =
                        DateTime.Today.AddDays(-_rnd.[Next](1, 365))
                    _employees.Rows.Add(dRow)
                Next
            End If
            Return _employees
        End Get
    End Property
    
    //データテーブルを初期化します
    public DataTable Employees
    {
        get
        {
                       if (employees == null)
            {
                employees = new DataTable("従業員");
                employees.Columns.Add("ID", 
                    System.Type.GetType("System.String"));
                employees.Columns.Add("名", 
                    System.Type.GetType("System.String"));
                employees.Columns.Add("姓", 
                    System.Type.GetType("System.String"));
                employees.Columns.Add("国", 
                    System.Type.GetType("System.String"));
                employees.Columns.Add("生年月日", 
                    System.Type.GetType("System.DateTime"));
    
                for (int row = 0; row < 10; row++)
                {
                    DataRow dRow = employees.NewRow();
                    dRow["ID"] = _rnd.Next(100000, 999999).ToString();
                    dRow["名"] = _firstNames[_rnd.Next(_firstNames.Length)];
                    dRow["姓"] = _lastNames[_rnd.Next(_lastNames.Length)];
                    dRow["国"] = _countries[_rnd.Next(_countries.Length)]; ;
                    dRow["生年月日"] = DateTime.Today.AddDays(-_rnd.Next(1, 365));
                    employees.Rows.Add(dRow);
                }
            }
            return employees;
        }
    }
    

先頭に戻る

InputPanel へのデータテーブルの連結

  1. XAML ビューで ItemsSource プロパティを設定して、InputPanel をデータテーブルに連結します。
    XAML
    コードのコピー
    <c1:C1InputPanel Name="InPanel" ItemsSource="{Binding Employees}"/>
    
  2. MainWindow.xaml.cs ファイルに切り替えて、DataContext プロパティを設定します。
    'データコンテキストを設定します
    Me.DataContext = New EmployeeDataContext()
    
    //データコンテキストを設定します
    this.DataContext = new Employee();
    

先頭に戻る