如何将列表视图点击事件中的数据传递到另一个页面中的 Telerik 数据表单
Posted
技术标签:
【中文标题】如何将列表视图点击事件中的数据传递到另一个页面中的 Telerik 数据表单【英文标题】:How to pass data from the listview tapped event to a telerik dataform in another page 【发布时间】:2018-11-16 05:50:24 【问题描述】:我需要将数据从 ListView 传递到有 Telerik DataForm 的 TodoDetail 页面,但我不知道如何使其工作。如果我使用普通的 Xamarin Forms 控件,它可以正常工作,但需要它与 Telerik DataForm 控件一起使用。
这是我的代码:
Todo.xaml 列表项点击处理程序
private async void ToDoTaskTap(object sender, ItemTappedEventArgs e)
var user = ToDoTask.SelectedItem as tblEmpTask;
if (user != null)
var mainViewModel = BindingContext as MainViewModel;
if (mainViewModel != null)
mainViewModel.Selected = user;
await Navigation.PushAsync(new ToDoDetail(mainViewModel));
tblEmpTask.cs
public class tblEmpTask
public string strTaskName get; set;
TodoDetail.xaml
<telerikInput:RadDataForm x:Name="dataForm">
<telerikInput:RadDataForm.Source>
<local1:MainViewModel />
</telerikInput:RadDataForm.Source>
</telerikInput:RadDataForm>
MainViewModel.cs
public class MainViewModel : INotifyPropertyChanged
public tblEmpTask Selected
get return _Selected;
set
_Selected = value;
OnPropertChanged();
[DisplayOptions(Header = "Name")]
public string Name
get return this.Selected.strTaskName;
set
if (value != this.Selected.strTaskName)
this.Selected.strTaskName = value;
OnPropertChanged();
【问题讨论】:
【参考方案1】:您必须在SelectedItem
和ListView
之间添加绑定
这是一个例子:
视图模型:
public List<object> ItemsSource get; set;
public object SelectedItem
set SelectedItemChanged(value);
async void SelectedItemChanged(object value)
await App.Current.MainPage.Navigation.PushAsync(new AboutPage(SelectedItem));
页面:
<ListView
ItemsSource="Binding ItemsSource"
SelectedItem="Binding SelectedItem, Mode=OneWayToSource">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="Binding ."></Label>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
【讨论】:
对于自动实现属性更改接口,我建议使用 Fody.PropertyChanged 我想你没有得到我的问题我有列表视图,当我点击列表视图时,我将所有数据传递到新页面,即 tododetail 页面,如果我使用 xamarin 控制它的工作正常但我想使用 Telerik 表单tododetail 页面中的数据,我被困在这里 使用<telerikInput:RadDataForm.GestureRecognizers><TapGestureRecognizer Command="Binding CustomCommand"></TapGestureRecognizer></telerikInput:RadDataForm.GestureRecognizers>
什么是自定义命令?我的意思是这个命令中的代码是什么?
此属性来自 ViewModel public ICommand CustomCommand=> _customCommand?? new Command(() => Console.WriteLine("CustomLogic"); );
以上是关于如何将列表视图点击事件中的数据传递到另一个页面中的 Telerik 数据表单的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET怎么将本页面内的某个参数传递到另一个页面中呢?
UITableViewCell 中的 UICollectionView 如何设置选择以将数据从当前视图传递到另一个视图