2016-08-03 2 views
1

Xamarinフォームを使用していますが、リストビューでクリックした後に要素の詳細を表示することはできません。詳細を含む新しいビューが開きます。オブジェクト全体をビューにバインドしてプロパティを簡単に使用する方法はわかりません。ここでXamarinフォームは詳細ビューでオブジェクトをバインドする方法を見つけることができません

は私のコードです:ここでは

public partial class ContactDetailPage : ContentPage 
     { 
      public ContactDetailPage(Agency agencyItem) 
      { 
       InitializeComponent(); 
       // The agencyItem is get from a list view 
       // HERE I suppose I need to bind the agencyItem to the view ? 
      } 
     } 

は、代理店を表示するには、私の詳細図である:

<?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="Project.ContactDetailPage"> 
    <ContentPage.Content> 
      <StackLayout Spacing="0"> 
       <Label Text="{Binding agency.name}" FontSize="Micro" LineBreakMode="TailTruncation" /> 
       <Label Text="{Binding agency.address}" FontSize="Micro" LineBreakMode="TailTruncation" /> 
      </StackLayout> 

    </ContentPage.Content> 
</ContentPage> 

私はそれを表示するためにagencyItemにビューをバインドするにはどうすればよいですか?

答えて

2

CHECこの上にXamarin documentationを出してください。

短い答えは次のとおりです。

BindingContext = agencyItem;

BindingContextはバインディングと、そのようなの世話をする各Pageのプロパティです。名前がagencyItemに直接ある場合は、<Label Text="{Binding agency.name}" ... />を実行する必要はありません。あなたは<Label Text="{Binding name}" ... />を直接使用することができます。だから、ルートオブジェクトから始めましょう。 agencyItemStringのプロパティNameがある場合は、直接Nameを使用してください。 agencyItemStringプロパティNameの複合プロパティーAgencyがある場合、現在のバインディングは正しいです。

また、XAMLで行うこともできます。次に、プロパティを作成してINotifyPropertyChangedインターフェイスを実装する必要があります。

MVVMのようなパターンを使用していないことに気付きました。それも同様に検討する価値があるかもしれません!

+0

MVVMパターンはどのように見えるのですか? – fandro

+0

True!ユースケースがない場合は、それをしないでください!私はそれが存在するかどうかを知っているかどうか疑問に思っていました;)小さなプロジェクトでも利益を得ることができます。もちろん、あなたのプロジェクトはすばやく大きく成長すると確信しています。 –

+1

okありがとう、私はそれを学んでいる – fandro

1

あなたの詳細ページ押し込みListViewとそのSelectedItem Property(あなたがMVVMを使用している場合)またはItemSelectedイベントやItemTappedイベントでを作成する必要があります(例:詳細ページにnavigateを)。

あなたはここにサンプルを見つけることができます。

  1. ListView Sample 1
  2. ListView Further details
  3. サンプル・プロジェクト - XamarinForms_Dynamic_ListView_Item
  4. Data Binding
  5. Lists in Xamarin.Forms
関連する問題