我有一个列表视图,并将其来源分配为
lvItemSigns.ItemsSource = viewmodel.ItemSignsList;
在“列表视图”数据单元中,我要添加一个按钮,单击该按钮应将其删除,列表应自动更新。
页面内:
DeleteDuplicateItem.Clicked += Remove_Clicked;
private void Remove_Clicked(object sender, EventArgs e)
{
var button = sender as Button;
var ticketItem = button.BindingContext as TicketItem;
var vm = BindingContext as ItemSignsTabViewModel;
vm.RemoveItemCommand.Execute(ticketItem);
}
在上面的代码中,vm始终为null,如果我使用新实例,我的列表将不会更新。
在视图模型中:
public Command<TicketItem> RemoveItemCommand
{
get
{
return new Command<TicketItem>((TicketItem) =>
{
ItemSignsList.Remove(ItemSignsList.Where(i => i.MobileID == TicketItem.MobileID).Single());
});
}
}
那么如何在单击按钮时获取视图模型实例以更新我的列表?
答案 0 :(得分:0)
lvItemSigns.ItemsSource = viewmodel.ItemSignsList;
您已经生成了视图模型,为什么不在下面直接使用它呢?
DeleteDuplicateItem.Clicked += Remove_Clicked;
private void Remove_Clicked(object sender, EventArgs e)
{
var button = sender as Button;
var ticketItem = button.BindingContext as TicketItem;
viewmodel.RemoveItemCommand.Execute(ticketItem);
}