2015-07-13 126 views
3

在我的Windows应用商店应用中,有一个列表视图使用项目源获取数据。它看起来像这样:从列表视图中检索数据

<ListView x:Name="lsvLinks" IsItemClickEnabled="True" 
      SelectionMode="Single" 
      ItemsSource="{Binding Source={StaticResource cvs2}}" ItemClick="lsvLinks_ItemClick" > 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
     <WrapGrid Orientation="Vertical" HorizontalChildrenAlignment="left"/> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="Margin" Value="-7.5"/> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <StackPanel Orientation="Horizontal" Width="340" Height="32" Background="#FFBE9CDE" HorizontalAlignment="Left"> 
      <StackPanel Width="255" VerticalAlignment="Center" Margin="15,0,0,0"> 
       <TextBlock Text="{Binding Link}" Foreground="{Binding Color}" FontSize="15" Margin="0,3,0,0" FontWeight="Normal" VerticalAlignment="Center" HorizontalAlignment="Left"/> 
      </StackPanel> 
      <StackPanel Width="50" VerticalAlignment="Center" Margin="0,0,0,0"> 
       <Button x:Name="btnRemove" Width="30" Height="30" Margin="20,0,0,0" ToolTipService.ToolTip="Remove" Click="btnRemove_click"> 
        <Button.Template> 
        <ControlTemplate> 
         <Image Source="Assets/cancel.png" Width="30" Height="30"/> 
        </ControlTemplate> 
        </Button.Template> 
       </Button> 
      </StackPanel> 
     </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

我的C#代码

try { 
    IEnumerable <linkTable> obsCollection = (IEnumerable <linkTable>) await webservice.getLinksStudentAsync(1); 
    linkList = new List <linkTable> (obsCollection); 

    int count = 1; 
    foreach(linkTable linkL in linkList) { 

     if (linkL.status.Equals("yes")) { 
      links.Add(new Collection { 
       ID = count, Link = linkL.link, Type = "Accept", Color = "green", BackColor = "#FFA27BC7" 
      }); 
     } else if (linkL.status.Equals("no")) { 
      links.Add(new Collection { 
       ID = count, Link = linkL.link, Type = "Reject", Color = "Red", BackColor = "#FFA27BC7" 
      }); 
     } else { 
      links.Add(new Collection { 
       ID = count, Link = linkL.link, Type = "Pending", Color = "White", BackColor = "#FFA27BC7" 
      }); 
     } 

     count++; 

    } 

    cvs2.Source = links; 
} 

当用户在ListView选择一个项目,我需要检索其ID。但我不明白该怎么做。谁能告诉我该怎么做?

回答

2

您需要将SelectionChanged事件添加到ListView并实施它。

public void ItemSelected(object sender, SelectionChangedEventArgs args) 
{ 
    var item= lsvLinks.SelectedItem as Collection; 
    int ID = item.ID; 
} 

在你的ListView上,你可以添加如下的事件。

<ListView x:Name="lsvLinks" IsItemClickEnabled="True" SelectionMode="Single" ItemsSource="{Binding Source={StaticResource cvs2}}" SelectionChanged="ItemSelected" > 
+0

是的。这工作。感谢您的帮助。 :) – udi

相关问题