nas*_*san 5 c# android xamarin.android xamarin.forms
我有一个ViewCell用作 a 的项目模板ListView:
ListView details_list = new ListView ();
details_list.ItemTemplate = new DataTemplate(typeof(CartViewCell));
Run Code Online (Sandbox Code Playgroud)
在 ViewCell 内部,我希望有一个函数来访问 ListView 的 itemSource 以删除项目。我想我会通过访问Parent内部的属性来做到这一点ViewCell
ListView parent = (ListView)this.Parent;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样做时,它显示父级为空。这是使用该Parent财产的错误方式吗?我缺少什么?
有几种方法可以解决这个问题;两种可能性包括
在 ViewModel 中定义一个命令,
// define a command property
public ICommand DeleteCommand { get; set; }
// in your constructor, initialize the command
DeleteCommand = new Command<string>((id) =>
{
// do the appropriate delete action here
}
Run Code Online (Sandbox Code Playgroud)
然后在你的 ViewCell 中绑定它
<Button Command="{Binding DeleteCommand}" CommandParameter="{Binding ID}" Text="Delete" />
Run Code Online (Sandbox Code Playgroud)
在您的 ViewModel 中,订阅一条消息:
MessagingCenter.Subscribe<MyViewCell, string> (this, "Delete", (sender, id) => {
// do the appropriate delete action here
});
Run Code Online (Sandbox Code Playgroud)
在您的 ViewCell 中,每当他们单击按钮(或触发操作的任何内容)时发送消息 - ID 应该是特定项目的标识符
MessagingCenter.Send<MyViewCell, string> (this, "Delete", ID);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |