在Windows Phone中列出框的Selectionchanged事件问题

时间:2012-03-06 08:48:06

标签: windows-phone-7.1 windows-phone-7

我有一个包含多个项目的列表框。并且选择已更改的事件已映射到一个函数。但每次我选择一个列表框项目时,事件都会被触发两次。结果我在第二轮中将所选索引作为-1。

有谁知道这种行为的原因?
XAML代码

<ListBox ItemTemplate="{StaticResource productTemplate}" Name="lstItems" SelectionChanged="ShowProductDetails">


C#代码


private void ShowProductDetails(object sender, SelectionChangedEventArgs e)
{
    Item item = lstItems.SelectedItem as Item;
    int index = lstItems.SelectedIndex;
}

1 个答案:

答案 0 :(得分:6)

每次更改选择时(无论是否来自用户输入)都会发生选择更改事件

当您重新加载列表框时,选择会更改(最可能为-1)

下面的代码检查以确保用户选择了某个东西(具有有效索引的项目,即非-1)然后运行代码。

    private void ShowProductDetails(object sender, SelectionChangedEventArgs e)
    {
        if(lstItems.SelectedIndex != -1)
        {
            Item item = lstItems.SelectedItem as Item;
            int index = lstItems.SelectedIndex;
        }
    }