Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以Xamarin形式在CommandParameter中传递两个参数_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 以Xamarin形式在CommandParameter中传递两个参数

C# 以Xamarin形式在CommandParameter中传递两个参数,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我定义了一个模型,如下所示: public class UserDetails { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public List<Transport> TransportModel { get; set; } } StackLayout stack = n

我定义了一个模型,如下所示:

public class UserDetails
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public List<Transport> TransportModel { get; set; }
}
        StackLayout stack = new StackLayout();

        foreach (var t in user.TransportModel)
        {
// Here I am looping to access data in the TransportModel
            Button btn = new Button();
            btn.Text = t.Name;
            btn.SetBinding(Button.CommandProperty, new Binding("ShowCommandParameter"));
            btn.CommandParameter = user.TransportModel; // if this correct ?
            stack.Children.Add(btn);
        }
我有以下ViewModel:

 public TransportViewModel()
        {
            ShowCommandParameter = new Command<UserDetails>(Show);
        }

        public void Show(UserDetails param)
        {
        // I want to access properties of TransportModel here..
        }
公共交通视图模型()
{
ShowCommandParameter=新命令(显示);
}
public void Show(UserDetails参数)
{
//我想在这里访问TransportModel的属性。。
}
我遇到的问题是我想在
CommandParameter
中传递两个参数。我想在
Show
方法中访问这些值


有人能帮我一下吗?我完全被卡住了。

因为每个按钮只适用于特定的
传输
,所以您希望将
传输
对象作为您的
命令参数

foreach (var t in user.TransportModel)
{
  ...
  btn.CommandParameter = t;
  ...
}
然后

公共交通视图模型()
{
ShowCommandParameter=新命令(显示);
}
公共空间展示(交通参数)
{
//param包含所选的传输
}

您只需将UserDetails对象作为参数传递,它包含您需要的所有数据need@Jason:是否正确:
btn.CommandParameter=t?那么我如何在方法
Show
中访问它?我说得太快了,请参见下面的答案。谢谢。你总是乐于助人:)
    public TransportViewModel()
    {
        ShowCommandParameter = new Command<Transport>(Show);
    }

    public void Show(Transport param)
    {
        // param contains the selected Transport
    }