Xamarin Forms可以';找不到如何将对象与局部视图绑定

本文关键字:对象 局部 绑定 视图 可以 Forms 找不到 Xamarin | 更新日期: 2023-09-27 17:59:50

我正在使用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 Forms可以';找不到如何将对象与局部视图绑定

查看关于这方面的Xamarin文档。

简单的回答是:

BindingContext = agencyItem;

CCD_ 2是每个CCD_ 3上的一个属性,负责绑定等。请注意,如果名称直接在agencyItem中,则不需要执行<Label Text="{Binding agency.name}" ... />。您可以直接使用<Label Text="{Binding name}" ... />。所以从根对象开始。如果您的agencyItem具有String属性Name,请直接使用Name。如果agencyItem具有复杂属性Agency,而String具有属性Name,则当前绑定是正确的。

您也可以选择在XAML中执行此操作。然后,您必须创建一个属性并实现INotifyPropertyChanged接口。

我还注意到您没有使用MVVM这样的模式。这可能也值得研究一下!

您需要创建一个ListView,然后在其SelectedItem属性(如果您使用MVVM)或ItemSelected事件或ItemTapped事件中推送您的详细信息页面(即:导航到详细信息页面)。

你可以在这里找到样品:

  1. ListView示例1
  2. ListView更多详细信息
  3. 示例项目-XamarinForms_Dynamic_ListView_Item
  4. 数据绑定
  5. Xamarin中的列表。表格