【发布时间】:2020-09-15 16:45:26
【问题描述】:
当项目在 Listview 中被点击时,我得到了对象。
async private void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
{
var vm = BindingContext as MeetingViewModel;
var meeting = e.Item as MeetingPOCO;
await Navigation.PushAsync(new Attendees_Page(meeting));
}
在下一个新页面中我创建对象
public partial class Attendees_Page : ContentPage
{
private MeetingPOCO thisMeeting;
public MeetingPOCO ThisMeeting
{
get { return thisMeeting; }
set
{
thisMeeting = value;
}
}
public Attendees_Page(MeetingPOCO meeting)
{
InitializeComponent();
ThisMeeting = meeting;
}
在 XAML 中,我绑定到对象:
<ListView x:Name="MeetingLV"
Margin="05,0,0,0"
ItemsSource="{Binding ThisMeeting}"
HasUnevenRows="True"
SeparatorVisibility="None"
>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding MeetingDate, StringFormat='{0:MM/ dd/ yyyy}'}"
Style="{StaticResource MyLabels}"
Grid.Column="0"/>
结果是一个空白页。如何传递“会议”对象并在另一个页面中绑定到它?
【问题讨论】:
-
你需要为页面设置
BindingContext -
并且,如果
ThisMeeting不是IEnumerable,则不能将其用作ListViewItemSource