如何填充LongListSelector

我开始使用C#Windows Phone 8开发,我正在尝试编写一个使用LongListSelector的应用程序。 该应用程序将显示一长串火车站名称。

我一直在网上看一些样本,包括MSDN PeopleHub和PhotoHub样本,但它们看起来非常复杂。 我拿了PeopleHub示例并对其进行了一些攻击,直到我在LongListSelector中显示一个站列表但我无法找到列表中选择了哪个项目。 SelectedItem属性只是在传递给另一个页面时返回应用程序名称,而不是在列表中选择了哪个项目。

我想我需要一个基本的例子,说明如何将一些项添加到LongListSelector,然后查找并将所选项传递给另一个页面。 我不完全理解控件是如何工作的,如果你必须使用某种类型的DataBinding和LongListSelector来填充它,或者它是否更简单:

LongListSelectorThing.add("trainstationA"); LongListSelectorThing.add("trainstationB"); LongListSelectorThing.add("trainstationC"); 

等等

有人可以给我一些简单的基本指针,说明如何填充此控件并找出用户选择的项目? 当我说出他们选择的项目时,当LongListSelector网格出现时,他们点击A例如,然后它显示以A开头的事物列表然后他们点击trainstationA,我希望能够检测到他们’选择了trainstationA并将该信息传递到另一个页面,以便我可以显示有关它的更多信息。

对不起,如果这看起来很基本,我对此很新。

谢谢!

这是一个基本的例子,可以帮助您理解:首先在您的页面(xaml文件)中定义控件LongListSelector(LLS):

          

您还要声明其项目的外观。 它可以是任何UIElement – 按钮,图像,网格等。 在上面的代码中,我声明我的Item将是一个TextBlock,我将内容(文本)绑定到属性’Name’。 我也给了LLS一个名字,我稍后可以参考它。

在Page.cs代码中填充LLS。 让我们创建简单的Station类,并填充LLS:

 public class Station { private string _stationName; public string Name { get { return _stationName; } set { _stationName = value; } } public Station(string station) { this.Name = station; } } public partial class MainPage : PhoneApplicationPage { ObservableCollection trainStations = new ObservableCollection(); public MainPage() { InitializeComponent(); myLLS.ItemsSource = trainStations; trainStations.Add(new Station("Germany")); trainStations.Add(new Station("France")); trainStations.Add(new Station("Italy")); } } 

重要的是:

  • 看看在我的Station类中有一个名为’Name’的属性 – 这是TextBlock内容绑定的属性。
  • 我创建了ObservableCollection,它是我的站点的集合 – 它类似于List但是当添加或删除新项目时,会引发PropertyChanged事件,因此当您添加新站点时,您的LongListSelector可以自动更新。
  • 我已将创建的集合分配给myLLS.ItemsSource – 这意味着创建的LLS将填充Items(在xaml中描述为DataTemplate),并且此项的Source是该集合。

希望这可以帮助。 快乐的编码。