実行時まで生成されないグリッドにUIElementsを挿入する必要があります。具体的には、表示する必要のある要素の数を決定した後、作成するRowDefinitionsにUIElementsを追加する必要があります。C#のオブジェクトのXAMLのようにGrid.RowとGrid.ColumnとGrid.RowSpanを制御する方法はありますか?私がこれを間違えている場合は、私に知らせてください。StackPanelを使用できません(動的なアコーディオンパネルを作成していますが、アニメーションが混乱しています)。
今何が起こっているのかというと、実行時にRowDefinitionsの数を生成し、子としてUIElementsを追加します。これは機能していません。すべてのUIElementは、最初の行が互いに重なり合って表示されます。
これが私が試していることの例です:
public partial class Page : UserControl
{
string[] _names = new string[] { "one", "two", "three" };
public Page()
{
InitializeComponent();
BuildGrid();
}
public void BuildGrid()
{
LayoutRoot.ShowGridLines = true;
foreach (string s in _names)
{
LayoutRoot.RowDefinitions.Add(new RowDefinition());
LayoutRoot.Children.Add(new Button());
}
}
}
ありがとう!