HmXa
HmXa

Reputation: 77

Arrangments of dynamic created control in Grid View

Here is my code to get values from XML file:

foreach (XmlNode node in DOC.SelectNodes("//CheckMarkObject"))
{
    FbCheckMark checkmark = new FbCheckMark();

    checkmark.Name = node.SelectSingleNode("Name").InnerText;
    checkmark.Label = node.SelectSingleNode("Label").InnerText;

    if (node.SelectSingleNode("IsChecked").InnerText == "0")
    {
        checkmark.IsChecked = false;
    }
    else
    {
        checkmark.IsChecked = true;
    }

    listCheckMarks.Add(checkmark);

}

Now the code to create control at runtime:

for (int i = 0; i < listCheckMarks.Count; i++)
{
if (listCheckMarks[i].checkMark.Equals(checkMark))
{

CheckBox cb = new CheckBox();
TextBlock cbtextblock = new TextBlock();
cbtextblock.Text = listCheckMarks[i].Label;
cbtextblock.Height = 27;
cbtextblock.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
cbtextblock.Margin = new Thickness(12, 20, 0, 0);
cbtextblock.VerticalAlignment = System.Windows.VerticalAlignment.Top;
cb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
cb.VerticalAlignment = System.Windows.VerticalAlignment.Top;
cb.Margin = new Thickness(150, 21, 0, 0);
cb.Height = 50;
cb.Width = 100;
cb.Name = listCheckMarks[i].Name;




LayoutRoot.Children.Add(cbtextblock);
LayoutRoot.Children.Add(cb);

}
}

when i made change in my XML file i.e Create "CheckMark" tag two times. the result control overwrite on previous one. i want to arrange the new control under the previous one. kindly suggest me what can i do ? use linear layout like in android?
thanks

Upvotes: 0

Views: 139

Answers (1)

Frank59
Frank59

Reputation: 3261

Try to insert elements into StackPanel and set Orientation property for it.

Try that example:

StackPanel container = new StackPanel();
LayoutRoot.Children.Add(container);

for (int i = 0; i < listCheckMarks.Count; i++)
{
   if (listCheckMarks[i].checkMark.Equals(checkMark))
   {

       StackPanel childContainer = new StackPanel();
       childContainer.Orientation = Orientation.Horizontal;

       CheckBox cb = new CheckBox();
       TextBlock cbtextblock = new TextBlock();
       cbtextblock.Text = listCheckMarks[i].Label;
       cbtextblock.Height = 27;
       cbtextblock.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
       cbtextblock.Margin = new Thickness(12, 20, 0, 0);
       cbtextblock.VerticalAlignment = System.Windows.VerticalAlignment.Top;
       cb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
       cb.VerticalAlignment = System.Windows.VerticalAlignment.Top;
       cb.Margin = new Thickness(150, 21, 0, 0);
       cb.Height = 50;
       cb.Width = 100;
       cb.Name = listCheckMarks[i].Name;




      childContainer.Children.Add(cbtextblock);
      childContainer.Children.Add(cb);

      container.Children.Add(childContainer);


  }
}

Upvotes: 2

Related Questions