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文档。
简单的回答是:
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事件中推送您的详细信息页面(即:导航到详细信息页面)。
你可以在这里找到样品:
- ListView示例1
- ListView更多详细信息
- 示例项目-XamarinForms_Dynamic_ListView_Item
- 数据绑定
- Xamarin中的列表。表格