ListBox显示不同行中的一个属性

时间:2011-04-12 13:31:48

标签: c# wpf xaml listbox

我使用以下代码将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;

3 个答案:

答案 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,否则将不会考虑更改分类帐。