0
我是wpf的初學者,並且遇到了stackpanel綁定的問題。 我必須動態生成標籤,並將其添加到堆棧面板。 我已經按照.cs文件代碼:WPF綁定mvvm StackPanel
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的
它看起來像你在你的ItemsControl中的每個項目創建一個StackPanel。是否有一個原因,你不只是一個列表框綁定到你的標籤集合? – AndrewS
是的,我不能使用列表框,因爲這將從文件字段映射到數據庫文件。此標籤僅用於他將映射的用戶信息。 – Java
@AndrewS我改變了我的XAML,它的工作原理。你是對的;)謝謝;) – Java