加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何填充LongListSelector

发布时间:2020-12-16 00:10:00 所属栏目:百科 来源:网络整理
导读:我开始使用C# Windows Phone 8开发,我正在尝试编写一个使用LongListSelector的应用程序.该应用程序将显示一长串火车站名称. 我一直在网上看一些样本,包括MSDN PeopleHub和PhotoHub样本,但它们看起来非常复杂.我拿了PeopleHub示例并对其进行了一些攻击,直到我
我开始使用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):

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,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"));
  }
}

重要的是:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读