我使用以下代码将ListBox绑定到列表,即List并设置绑定Path = Name。但是列表框只显示了一个字母分成行的名称。就像Name是JOHN一样,列表框第1行显示“J”,第2行显示“O”,第3行显示“H”,第4行显示“N”。这是代码。
的Xaml
<ListBox Height="Auto" ItemsSource="{Binding Path=Name}" HorizontalAlignment="Stretch" Margin="0,80,0,0" Name="ledgerListView" VerticalAlignment="Stretch" Width="200" KeyDown="ledgerListView_KeyDown" MouseDoubleClick="ledgerListView_MouseDoubleClick" IsSynchronizedWithCurrentItem="True" />
代码隐藏
List<Ledgers> ledgers = new List<Ledgers>();
ledgers = DAL_Ledgers.LoadLedgers();
this.DataContext = ledgers;
答案 0 :(得分:2)
需要将ItemsSource属性绑定到要从中生成列表框项的源集合。在这种情况下,它只是DataContext。要显示每个项目的名称,您可以将DataTemplate应用于包含要为每个项目显示的内容的ItemTemplate属性,或者对于这样的简单情况,只需使用DisplayMemberPath指定Name属性。
<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name" x:Name="ledgerListView"/>
答案 1 :(得分:1)
看起来你绑定了错误的东西......如果你使用它会起作用吗?
<ListBox ItemsSource="{Binding}" ...>
<ListBox.ItemTemplate>
<DataTemplate>
<sdk:Label Content="{Binding Path=Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 2 :(得分:0)
此外,您可能希望使用ObservableList,否则将不会考虑更改分类帐。