如何在ListView项目绑定中将单击的项目作为参数发送

时间:2015-09-07 02:00:18

标签: binding xamarin xamarin.android mvvmcross

我有一个动态列表,它是 TestClass testClass = new TestClass(); Variable<string> resultValue = new Variable<string>(); return new Sequence() { Variables = { resultValue }, Activities = { new WriteLine() {Text = "... Invoke void Method()"}, new InvokeMethod() { TargetObject = new InArgument<TestClass> (aec=>testClass), MethodName = "Method", }, 的来源。 我在ListView中有一个命令,我需要在那里收到被点击的项目。我想获得代表该项目的对象,因此我可以对其进行更改。

我正在使用MvvmCross。

1 个答案:

答案 0 :(得分:1)

这是相当微不足道的。我想你的布局中有ListView,看起来像是:

<Mvx.MvxListView
   ...
   local:MvxBind="ItemsSource Items" />

为了能够获得点击的项目,您只需向ItemClick添加命令:

<Mvx.MvxListView
   ...
   local:MvxBind="ItemsSource Items; ItemClick ItemClickedCommand" />

然后在您的ViewModel中,您应该有一个ItemClickedCommand

private MvxCommand<ItemViewModel> _itemClickedCommand;
public ICommand ItemClickedCommand
{
    get 
    { 
        return _itemClickedCommand = _itemClickedCommand ??
            new MvxCommand<ItemViewModel>(item => {
                // do something with the item here
            }):
    }
}

ItemViewModel是您绑定到ItemsSource的集合中项目的类型。