Xamarin.Forms listview中的button按钮,实现带着参数返回上一级页面
今天在做列表显示的时候遇到一个问题,就是在ListView中如何才能让一个button的按钮工作并且包含参数呢?
其实有点类似于rep里的控件无法起获取一样。在Xamarin中,当你button绑定事件并不包含在listview的数据源中,那么这个按钮的事件便是无效的。
那么该怎么解决呢?找了一下午终于找到了解决方案
xaml:
<AbsoluteLayout IsVisible="True" HorizontalOptions="EndAndExpand">
<renderers:CiCoButton x:Name="ButtonName" BorderRadius="2" BackgroundColor="{StaticResource color}" HeightRequest="36" WidthRequest="36"
AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".5,.5,-1,-1" TextColor="White" Command="{Binding Path=BindingContext.functionName, Source={x:Reference Name=ListviewName}}"
CommandParameter="{Binding Id}" />
<Image Source="ic_add_white" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".5,.5,-1,-1"/>
</AbsoluteLayout>
问题的关键在于,Button怎么存数据和如何找到ViewModel中的Command方法
在网上找到这么一种绑定的写法“
{Binding Path=BindingContext.functionName, Source={x:Reference Name=ListviewName}}
”
Path 指的是你的方法名,BindingContext相当于你的上下文,然后用它点出来你的ViewModel中的方法名,后面则是要把数据绑定到哪里,那么,Name,理所应当就是你所在listview中的名字了
ViewModel:
private ICommand _backCommand; public ICommand BackCommand
{
get
{
return _backCommand ?? (_backCommand = new Command<string>(async (id) => {await BackPage(id);}));
}
} private async Task BackPage(string id)
{
var page = Navigation.NavigationStack.FirstOrDefault(p => p is OutPage);
var vm = page.BindingContext as OutViewModel;
if (vm != null)
{
// 你想要做的事情
}
else
{
"Can't find ".ToToast();
}
await Navigation.PopAsync(true);
}
那么,Viewmodel中的command方法就要这样写了,new Command<string>(async (id) => {await BackExamStaffPage(id);} 这里对应着page中Button的CommandParamete
Navigation.NavigationStack.FirstOrDefault(p => p is OutPage);从所有打开的页面中,找到你想要返回的上一个页面(当然如果你不需要参数的话直接Pop就好了)
page.BindingContext as OutViewModel; 利用BindingContext转换为你需要的ViewModel,那么,再接下来,你想干嘛都可以楼
Xamarin.Forms listview中的button按钮,实现带着参数返回上一级页面的更多相关文章
- Xamarin.Forms ListView点击按钮刷新最新数据
最近在研究Xamarin的东西,做到ListView遇到了一些瓶颈,像在数据庞大的情况下,该怎么针对ListView中的数据分组呢? 基于能力有限的问题,暂时写了一个只可以实现功能的临时解决方案,毕竟 ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- 如何在MFC界面开发中响应Button按钮的Down和Up事件
通过尝试有两种方案可以解决这个问题,第一种方案是通过PreTranslateMessage函数在调度消息之前对消息类型进行筛选,第二种方案是重载CButton类,在重载后的类CForTestButto ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- 在datagridview中添加button按钮
.Net的DataGridView控件中,提供了一种列的类型,叫 DataGridViewButtonColumn ,这种列类型是展示为一个 按钮,可以给button赋予相应的text,并且,此but ...
- 菜鸟的Xamarin.Forms前行之路——实现按钮的字体图标(可扩展)
在实际的APP中,带有图标的按钮用到地方还是蛮多的,字体图标往往能更快更生动的传达信息,并且相对于背景图片,字体图标也有着绝对的优势,所以实现按钮的字体图标是值得尝试的. 实现方法:各平台自定义渲染按 ...
- listView中的button控件获取item的索引
在listview中的listitem设置事件响应,如果listitem中有button控件,这时候listitem就不会捕获到点击事件,而默认的是listitem中的button会捕获点击事件.那么 ...
- [Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法
转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类 ...
- form中的button按钮在IE11中自动提交表单问题导致弹出框关闭之后表单被重置
最近几天,测试系统,遇到一个兼容性问题,form中有一个button按钮,没有指定type类型,点击按钮弹出框选择值之后回填给form上的一个单行文本框,在IE6.IE7.IE8.IE9.IE10中测 ...
随机推荐
- 使用PowerShell解三道测试开发笔试题
在网上看到了三道测试开发的笔试题,答案是用Python解的.这段时间正好在学PowerShell,练习一下:) 1. 验证邮箱格式 2. 获取URL的后缀名 3. 获取前一天时间或前一秒 我的解法是: ...
- Linux系统下Nginx安装详解
该随笔为个人原创,后期会根据项目实践实时更新,如若转载,请注明出处,方便大家获得最新博文! 注:安装Nginx需要Linux系统已经安装 openssl-fips-2.0.2.tar.gz zli ...
- pdf拆分与合并
1.引用iTextSharp,用于拆分和合并pdf文件 using iTextSharp.text; using iTextSharp.text.pdf; 2.合并pdf //outMergeFile ...
- VSCode+Ionic+Apache Ripple开发环境搭建
vscode作为一个轻量级编辑器,有其独特的魅力. 安装Ionic:npm install -g ionic 安装Apache Ripple模拟器: npm install -g ripple-emu ...
- js统计,然后去重例子
var list=new Array(); for(var i=0;i<result.length;i++){ examsubject=result[i].examsubject; list.a ...
- goim socket丢包粘包问题解决。
-(NSInteger)bytesToInt:(unsigned char*) data { return (data[3]&255)|(data[2]&255)<<8|( ...
- Memcached,你懂的
一.Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网 ...
- 快速查找和你聊天人的IP和具体的物理所在地址
附言 : 对于中秋佳节没有回家也没有外出的我,亦然选择闭关.本来是打算把这个公众号作为测试号的.但是发现这个号已经有注册有一年多了,怪可惜的!所以就用来发些教程图文,供给大家共同学习,也对自己进行不定 ...
- html特殊字符
平时写代码很少用到HTML的特殊字符,最常用的可能是 了,但有时在移动端为了节省时间,可能会用这些字符实现某种特殊效果,现整理如下: 使用方法: 这些字符属于unicode字符集,所以,你的文档需要声 ...
- IOS关于不同字体和不同颜色的选择
在项目中,用到一个功能,就是不同文字和不同颜色字体选择, 界面如下:,效果如下: 这个功能主要用到了textview的几个代理办法,其中一个重要的问题就是,在英文下和英文下的不同判断方式,以及是否有追 ...