2017-09-18 42 views
0

我在頁面的.cs文件的構造函數中具有以下代碼。我能拉 數據沒有問題將數據綁定到列表視圖並隱藏字段

void InitData() 
      { 
       ArticlesService objArtServ = new ArticlesService(); 
       Task<List<ArticlesModel>> dataRetrieved = objArtServ.GetValues("News"); 

       //Bind headlines and Id to listview but hide Id 
       // datalist.itemsource = ? 

      } 

這裏是我返回的數據沒有任何問題的服務。

public class ArticlesService 
     { 
      HttpClient client; 

      public async Task<List<ArticlesModel>> GetValues(string category){ 
       client = new HttpClient(); 
       var response = await client.GetStringAsync("http://testing-dev.com/Api/Articles/DefaultArticles/" + category); 
       var articlesModel = JsonConvert.DeserializeObject<List<ArticlesModel>>(response); 
       return articlesModel; 
      } 

     } 

我有這個主要頁面上的網格和列表視圖,將列出從我的模型和Id的頭條新聞。該ID將被隱藏 而不會顯示在列表中。 這裏是低於

 <StackLayout Grid.Column="1" Orientation="Vertical" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Padding="0" Spacing="0"> 
         <SearchBar x:Name="searchBar" Placeholder="Search" SearchCommandParameter="{Binding Source={x:Reference searchBar}, Path=Text}"/> 
         <StackLayout VerticalOptions="FillAndExpand"> 
          <StackLayout VerticalOptions="FillAndExpand" Padding="1" BackgroundColor="Black"> 
           <ListView x:Name="dataList" BackgroundColor="White"> 
            <ListView.ItemTemplate> 
             <DataTemplate> 
              <ViewCell> 
               <Label FontSize="20" VerticalOptions="CenterAndExpand" TextColor="Black" Text="{Binding HeadLines}"></Label> 
              </ViewCell> 
             </DataTemplate> 
            </ListView.ItemTemplate> 
           </ListView> 
          </StackLayout> 
         </StackLayout> 
        </StackLayout> 

下面的代碼是我的模型,我使用

public class ArticlesModel 
     { 
      public Int32 Id { get; set; } 
      public string HeadLines { get; set; } 
      public string Url { get; set; } 
      public string Category { get; set; } 
      public string Summary { get; set; } 
     } 

問題

  1. 如何綁定只有標題和編號到我的列表視圖,使得我Id將被隱藏,但標題將顯示在列表視圖中

  2. 點擊我的listview中的每一行,我希望能夠傳遞關聯的ID,這樣我就可以使用ID來查詢我的列表中的其他內容。 我該如何做到這一點?

回答

0

如果不顯示它,則不需要綁定標識。 ItemSelected事件將爲您傳遞被點擊的行的完整ArticlesModel對象,並且您可以輕鬆地從模型中獲取ID。

dataList.ItemSelected += (s,e) { 

    if (e.SelectedItem == null) return; 

    // item will be a pointer to the selected ArticlesModel object 
    var item = (ArticlesModel)e.SelectedItem; 

    // then you can use item.Id or any other property on ArticlesModel 
}; 
+0

您是否有一些代碼示例? – user2320476

+0

我需要所選行的ID。 – user2320476

+0

看我上面的編輯 – Jason