我开始使用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并将该信息传递给另一个页面,以便我可以显示有关它的更多信息。
很抱歉,如果这看起来很基本,我对此很陌生。
谢谢!
答案 0 :(得分:12)
这是一个基本的例子,可以帮助您理解: 首先在页面(xaml文件)中定义控件LongListSelector(LLS):
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<phone:LongListSelector Name="myLLS" Margin="0">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
您还要声明其项目的外观。它可以是任何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<Station> trainStations = new ObservableCollection<Station>();
public MainPage()
{
InitializeComponent();
myLLS.ItemsSource = trainStations;
trainStations.Add(new Station("Germany"));
trainStations.Add(new Station("France"));
trainStations.Add(new Station("Italy"));
}
}
重要的是:
希望这会有所帮助。快乐的编码。