2017-01-03 8 views
0

FlowListViewコントロールにリストから項目を表示していません。テスト目的のために、写真のファイルパスをラベルとして表示したかっただけです。ここでxamarinフォームFlowListViewがリストからデータを表示しない

は、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" 
     xmlns:controls="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms.Controls" 
     xmlns:flv="clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView" 
     x:Class="TamarianApp.ImagePage"> 
    <ContentPage.Content> 
      <flv:FlowListView FlowColumnCount="3" SeparatorVisibility="None" HasUnevenRows="true" x:Name="image_gallary" ItemsSource="{Binding photos}" HeightRequest="100" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
       <flv:FlowListView.FlowColumnTemplate> 
        <DataTemplate> 
         <Label Text="{Binding filepath}" TextColor="Black" Margin="20" VerticalOptions="Fill" HorizontalOptions="Fill" XAlign="Center" YAlign="Center"></Label> 
        </DataTemplate> 
       </flv:FlowListView.FlowColumnTemplate> 
      </flv:FlowListView> 
    </ContentPage.Content> 
</ContentPage> 

は、バックエンドである:

public partial class ImagePage : ContentPage 
    { 
     public List<Photo> photos = App.rug.photos 

     public ImagePage() 
     { 
      InitializeComponent(); 
      Title = "Photos"; 
     } 
    } 

は 'App.rug.photosは、' 文字列フィールド「ファイルパスが含まれている写真のクラスの一覧です'デバッグすると、 '写真'フィールドは空ではなく、 'App.rug.photos'のデータが含まれています。

お願いします。

+0

"ViewModel"クラスを追加し、それをページのBindingContextとして設定します。 Xamarin.Formsを使用している場合はMVVMパターンに従ってください。 –

答えて

0

リストをどのように割り当てているかによって、バインディングが正しく機能するようにリストがプロパティであることを確認する必要があります。

試してみてください。..

public partial class ImagePage : ContentPage 
    { 
     public List<Photo> photos {get; set;} 

     public ImagePage() 
     { 
      InitializeComponent(); 
      Title = "Photos"; 
      photos = App.rug.photos 
     } 
    } 

はまた、このコードを試してみてくださいバインディングコンテキスト

public partial class ImagePage : ContentPage 
    { 
     public List<Photo> photos {get; set;}; 

     public ImagePage() 
     { 
      InitializeComponent(); 
      this.BindingContext = this; 
      Title = "Photos"; 
      photos = App.rug.photos 
     } 
    } 
+0

まだ動作していません – Bjt1776

0

を設定する必要があるかもしれません。

public ObservableCollection<object>() photos; 
... 
var oc = new ObservableCollection<Photo>(); 
foreach (var item in App.rug.photos) 
    oc.Add(item); 
photos = oc as ObservableCollection<object>; 

私はObservableCollection<MyObject>に問題があるが、ObservableCollection<object>を使用して、それを解決しました。

関連する問題