2017-01-03 4 views
0

목록의 항목을 표시하지 않는 FlowListView 컨트롤이 있습니다. 테스트 목적으로 사진의 파일 경로를 레이블로 표시하려고했습니다. 여기 xamarin 폼 FlowListView가 목록의 데이터를 표시하지 않습니다.

<?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'문자열 필드 '파일 경로를 포함하는 사진 클래스의 목록은 다음

는 XAML 코드 '. 디버깅 중 '사진'필드가 비어 있지 않고 '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>를 사용하여 그것을 해결했다.

관련 문제