【发布时间】:2015-11-05 13:49:45
【问题描述】:
我有 2 个 ListView 和一个 TextBlock。第一个 ListView1 包含按字母顺序排列的字母。第二个 ListView2 包含以所选字母开头的单词(在 ListView1 中)。当我从 ListView1 中选择一个字母,然后单击 ListView2 中加载的一个单词时,我想在 TextBlock 中获取该单词的定义。
这是我的 Xaml:
<ListView
Width="510"
x:Name="ListView1"
ItemsSource="{Binding}"
Background="White"
Foreground="Black"
TabIndex="1"
Margin="-7,8,0,0"
IsSwipeEnabled="False"
SelectionChanged="ItemListView_SelectionChanged"
Grid.Row="1"
HorizontalAlignment="Left">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Grid.Row="0"
Text="{Binding glossary_letter}"
Margin="10,0,0,0"
TextWrapping="Wrap"
Foreground="Black"
FontSize="24"
FontWeight="SemiBold"
VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView Width="361"
x:Name="ListView2"
Background="White"
Foreground="Black"
Margin="425,8,230,0"
Grid.Row="1"
HorizontalAlignment="Center"
ItemsSource="{Binding}"
SelectionChanged="itemListView2_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Grid.Row="1"
TextWrapping="Wrap"
Foreground="Black"
Text="{Binding}"
FontSize="24"
FontWeight="SemiBold"
VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackPanel HorizontalAlignment="Right"
Background="White"
Width="580"
Margin="0,10,0,0" Grid.Row="1" Grid.ColumnSpan="2">
<TextBlock x:Name="defBlock" Foreground="Black" Text="{Binding glossary_definition}"></TextBlock>
</StackPanel>
如果我第一次单击一个字母 (ListView1),然后单击一个单词 (ListView2),它会显示定义。然而,当我第二次点击一个字母时,它给了我一个OutOfRange 错误ListView2.SelectedIndex = -1
这是我的 C# 代码:
private void ListView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListView2.ItemsSource = arrayW[ListView1.SelectedIndex];
}
private void ListView2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
defBlock.Text = arrayDef[ListView1.SelectedIndex][ListView2.SelectedIndex];
}
知道我在做什么错误吗?
【问题讨论】:
-
这是我第二次点击不同的字母。给我的确切错误是:索引超出了数组的范围。
-
这是一个使用 C# 和 Xaml 在 Windows 8.1 上的 Windows Store 应用程序。
标签: c# xaml listview windows-store-apps selectedindex