StackPanelのコントロールは重複しません。あなたがのためのビューモデルを持っていない場合
<ItemsControl Name="itemsStack" ItemsSource="{Binding Path=collection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<ProgressBar Value="{Binding Path=progress}"/>
<TextBlock Text="{Binding Path=progress}" HorizontalAlignment="Center"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
:あなたは、動的にコードビハインドなしのコレクションから各要素のコントロールを作成することができ、追加の容器(グリッド)のItemsControlを使用して
foreach (var item in collection)
{
ProgressBar pg = new ProgressBar();
//set values from collection
TextBlock t = new TextBlock();
//set values from collection
Grid g = new Grid();
g.Children.Add(pg);
g.Children.Add(t);
StackPanel.Children.Add(g);
}
を使用しますItemsSourceバインディングは、同じ効果を持つコードから割り当てることができます。
itemsStack.ItemsSource = collection;
出典
2017-04-16 17:15:42
ASh
広すぎます。もちろん、それは "可能"です。しかし、これを達成するための多くの方法があります。すべての最も適切な方法は、テキストと進行状況を表すビューモデルを使用し、次に、データテンプレートを使用して表示される、いくつかのタイプの 'ItemsControl'にバインドされたモデルのコレクションを持つことです。バーの上にテキストを置くグリッド)。いくつかの調査を行い、あなた自身で解決するために努力し、問題を解決する方法についての_specific_質問で、あなたが試したことを示す良い[mcve]を提供できるかどうかを質問してください。 –