Windows8ストアアプリ ボタンを動的に配置する(VB)

VB Tips And Sample(HOME)VBのWindowsストアアプリ入門

ボタンを動的に配置する(VB)

血圧帳ですが、データを保存、読み出す必要がります。
今回は、その読み出しの部分です。
また、血圧帳には複数の人が登録できるようにしたいため、複数のデータを選択して読み出す必要があります。
データベースを簡単に使えると良いのですが、ストアアプリは、SQLiteぐらいしか使えないそうです。
もともと、クラウドへデータを保存する考えで作られていると思えば、納得できますが。
で、XMLとして保存することにしました。
起動時に、XMLファイルの数だけボタンを画面に配置して、ユーザがそのボタンを選んで次の画面に行きデータを更新する流れです。
XMLの読み取りは、先にしたので、今回は、ファイルの数だけボタンを配置するといったプログラムです。
XMLファイルは下記の図の場所にあります。
今回は「AA.xml」ファイル一つで、このファイル名のボタンを動的に作ることが目標です。
「_sessionState.xml」はPGが自動的に作るセッション管理のファイルなので、このボタンは必要ありません。
前回のXMLファイルを取得するPGに
And files(i).Name.IndexOf("_sessionState.xml") = -1
を追加します。
xmlファイル

で、ボタンを動的に配置するプログラムです。

     
  
  Private Async Sub MainPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        'xmlからデータを読み込んでボタンを動的に表示する
        Dim x, y As Integer
        x = 0
        y = 0
        Dim files As String()
        files = Await MyXML.LoadXmlFiles()

        For i As Integer = 0 To files.Count - 1
             Debug.WriteLine(files(i))
            Dim index = i + 1
            x = index Mod 4
            y = Math.Floor(index / 4)

            'ボタンを動的に配置
            btn = New Button
            With btn
                .Name = "SButton" & index.ToString
                .Content = files(i).Replace(".xml", "")
                .HorizontalContentAlignment = Windows.UI.Xaml.HorizontalAlignment.Center
                .VerticalContentAlignment = Windows.UI.Xaml.VerticalAlignment.Center
            End With
            GridButton.Children.Add(btn)
            btn.SetValue(Grid.ColumnProperty, x)
            btn.SetValue(Grid.RowProperty, y)

            AddHandler btn.Click, AddressOf btn_Click   '動的にイベントを関連付ける
        Next i

    End Sub


ボタンを動的に配置する
VB Tips And Sample(HOME)VBのWindowsストアアプリ入門