我想将itemselected的数据传递给另一个页面。以下代码按预期工作。
private void inProgress_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var surveyTapped = (SurveyList)e.SelectedItem;
Navigation.PushAsync(new StartSurvey(surveyTapped.vchar_Title, surveyTapped.int_SurveyID, surveyTapped.int_UserSurveyID));
}
但是我在listview中有2个按钮,我必须添加点击这些按钮
private void resume_ButtonClicked(object sender, EventArgs e)
{
//How and what should i implement in order to pass the data
}
答案 0 :(得分:2)
绑定是这里的救世主。
如果您要使用面向事件的方法,请尝试以下代码:
produces
答案 1 :(得分:1)
这就是我所做的对我来说完美无缺。我使用命令参数来传递值。这就是我在listview中所做的
<Button Text="Resume" TextColor="White" BackgroundColor="Green" HorizontalOptions="EndAndExpand" Clicked="resume_ButtonClicked" CommandParameter="{Binding .}"/>
和onclicked事件我给了按钮一个列表视图的引用。
private void resume_ButtonClicked(object sender, EventArgs e)
{
var menuItem = sender as Button;
var selectedItem = menuItem.CommandParameter as SurveyList;
Navigation.PushAsync(new StartSurvey(selectedItem.vchar_Title, selectedItem.int_SurveyID, selectedItem.int_UserSurveyID));
}
答案 2 :(得分:0)
尝试这个建议。
在向列表视图行添加按钮时,为它们添加唯一的“id”属性,这样您就可以知道单击了哪个按钮,它位于哪一行。
就像 - &gt; 第0行 - 按钮ID可以是01,02 第1行 - 按钮可以是10,11 等...... ..
因此,当您单击按钮时,您将知道单击了哪个按钮以及它在哪里。
当你知道listview行索引时,你可以从该索引的列表的itemsource属性中获取数据,或者使用你用来绑定数据的集合。
现在你有了数据,你可以传递你在第一种情况下所做的相同的事情。
这是我正在谈论的财产。