Я новичок в wpf, и у меня проблема с привязкой к стековой панели. Мне нужно динамически генерировать метки и добавлять их в stackpanel. У меня был следующий код в файле .cs:
public DataImport()
{
labels.Add(new StringObject { Value = "tes" });
labels.Add(new StringObject { Value = "tes2" });
labels.Add(new StringObject { Value = "tes3" });
}
private ObservableCollection<StringObject> labels = new ObservableCollection<StringObject>();
public ObservableCollection<StringObject> Labels
{
get { return labels; }
private set
{
if (value == labels) return;
labels = value;
OnPropertyChanged("Labels");
}
}
public class StringObject
{
public string Value { get; set; }
}
Далее в xaml у меня есть:
<ItemsControl ItemsSource="{Binding Path=Labels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Grid.Row="1" Height="237" HorizontalAlignment="Center" VerticalAlignment="Top" Width="186" FlowDirection="LeftToRight">
<Label Content="{Binding Path=Value}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Настоящая проблема в том, что в окне xaml я вижу только первый элемент из объекта меток. Вы можете сказать мне, что я сделал не так?
PS: мой класс DataImport, конечно, наследует INotifyPropertyChanged