[英]Xamarin Forms can't find how to bind object with a detail view
我使用的是Xamarin Forms,在列表視圖中單擊后,我不想顯示元素的細節。 它將打開一個帶有細節的新視圖。 我不知道如何將整個對象綁定到視圖,以便輕松使用其屬性。
這是我的代碼:
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以顯示它?
查看Xamarin文檔 。
簡短的回答是:
BindingContext = agencyItem;
BindingContext
是每個Page
上的一個屬性,它負責綁定等。 請注意,如果name直接在agencyItem
,則無需執行<Label Text="{Binding agency.name}" ... />
。 您可以直接使用<Label Text="{Binding name}" ... />
。 所以從根對象開始。 如果您的agencyItem
具有String
屬性Name
,則只需直接使用Name
。 如果agencyItem
有一個具有String
屬性Name
的復雜屬性Agency
,那么您當前的綁定是正確的。
您也可以選擇在XAML中執行此操作。 然后,您必須創建一個屬性並實現INotifyPropertyChanged接口。
我還注意到你沒有使用像MVVM這樣的模式。 這也許值得一試!
您需要創建一個ListView ,然后在其SelectedItem屬性上 (如果您使用的是MVVM)或在ItemSelected事件或ItemTapped事件中創建您的詳細信息頁面(即: 導航到詳細信息頁面)。
你可以在這里找到樣品:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.