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
}