2

我有一个应用程序,我在其中向用户显示特定单词的含义。因此,我在前端使用了一个列表框。这是代码..

XAML:

<ListBox Background="White" Grid.Row="1" ItemsSource="{Binding}" Height="605" HorizontalAlignment="Stretch" Margin="0,90,0,0" Name="listBox1" VerticalAlignment="Top">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Vertical" Height="50">
        <TextBlock Text="{Binding ActualWord}" Height="5" />
        <TextBlock Text="{Binding Meaning}"  Height="5"/>
        <TextBlock Text="{Binding Type}" Height="5"/>
        <TextBlock Text="{Binding Example}" Height="5" />
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

C# 用于在后端添加单词..

listBox1.Items.Add(new WordClass()
{
    ActualWord = "Something",
    Type = "Something111",
    Meaning =  "Something222",
    Example =  "Something333"
});

问题是代码可以编译,但我看到一个空白屏幕,或者换句话说,列表框中没有任何内容,即使我在页面的构造函数中执行此操作也是如此。

4

1 回答 1

4

ItemsSource="{Binding}"从 XAML 中删除该部分。由于您是手动填写列表,因此您不需要它,它可能会导致问题。

另一种选择是保持 XAML 不变,填充集合WordClass并将其设置为DataContext

var list = new List<WordClass>();
list.Add(new WordClass()
{
    ActualWord = "Something",
    Type = "Something111",
    Meaning =  "Something222",
    Example =  "Something333"
});
...

this.DataContext = list;
于 2012-05-19T20:13:37.327 回答