2017-05-28 153 views
0

我尝试绑定数据,但列表视图未显示任何我调试过的内容,而且我看到项目正常出现,但列表视图不显示任何内容。我怎样才能绑定我的名单列表视图我搜索了很多,但我没能找到任何解决方案Xamarin将绑定数据绑定到ListView中的网格组件

ResultPage.xaml.cs

using System; 
using System.Collections.Generic; 
using FindDiscount.Models; 
using Xamarin.Forms; 
using System.Collections.ObjectModel; 

namespace FindDiscount { 
    public partial class ResultPage : ContentPage { 
     public ObservableCollection<resultModel> products; 

     public ResultPage(int distance, string productName) { 
      InitializeComponent(); 
      initData(); 



     } 


     public ResultPage() { 
      InitializeComponent(); 

     } 

     void initData(){ 

      products = new ObservableCollection<resultModel>(); 
      products.Add(new resultModel{ 
       productName="Samsung Note 4", 
       companyName="Samsung", 
       productPrice=1000, 
       discountRate=15, 
       imageURL="hamburger.png" 
      }); 
      products.Add(new resultModel { 
       productName = "iphone 7", 
       companyName = "Apple", 
       productPrice = 3000, 
       discountRate = 45, 
       imageURL = "hamburger.png" 
      }); 
      products.Add(new resultModel { 
       productName = "Windows Phone ", 
       companyName = "Microsoft", 
       productPrice = 1000, 
       discountRate = 15, 
       imageURL = "hamburger.png" 
      }); 
      ProductsListView.ItemsSource = products; 
     } 
    } 
} 

ResultPage.xaml

<?xml version="1.0" encoding="UTF-8"?> 
<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="FindDiscount.ResultPage"> 
    <ContentPage.Content> 

    <ListView x:Name="ProductsListView" HasUnevenRows="true" ItemsSource="{Binding products}"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
       <ViewCell.View> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="*"/> 
           <RowDefinition Height="*"/> 
           <RowDefinition Height="*"/> 
           <RowDefinition Height="*"/> 
          </Grid.RowDefinitions> 

          <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*"/> 
           <ColumnDefinition Width="*"/> 
          </Grid.ColumnDefinitions> 

          <Image Grid.Row="0" Grid.Column="0" Source="{Binding imageURL}" />  

          <Label Grid.Row="0" Grid.Column="1" Text="{Binding productName}" TextColor="Black" /> 

          <Label Grid.Row="1" Grid.Column="1" Text="{Binding companyName}" TextColor="Black" /> 

          <Label Grid.Row="2" Grid.Column="0" Text="{Binding productPrice}" TextColor="Black" /> 

          <Label Grid.Row="2" Grid.Column="1" Text="{Binding discountRate}" TextColor="Black" /> 

          <Button Grid.Row="3" Grid.Column="1" Text="Locaiton" TextColor="Black" /> 

         </Grid> 
        </ViewCell.View> 
       </ViewCell>    
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 


    </ContentPage.Content> 
</ContentPage> 
+0

我用相同的代码解决了我使用MVVM的问题 –

回答

0

我想你应该写点类似于

public ObservableCollection<resultModel> products {get; set;} 

并执行INotifyPropertyChanged在你resultModel