gpt4 book ai didi

xamarin - 在 Xamarin Forms 和 MVVM 中定义命令方法的返回类型

转载 作者:行者123 更新时间:2023-12-03 10:26:27 25 4
gpt4 key购买 nike

我想为与我的命令相关联的方法定义一个返回类型,该命令在单击按钮时执行。例如,

在按钮单击时,

this.Detail = ViewModel.MasterItemSelectedCommand.Execute(seleteditem);

在 View 模型构造函数中,
MasterItemSelectedCommand = new Command<string>(OnMasterItemSelected);

之后,我的方法是,
private Page OnMasterItemSelected(string seleteditem)
{
switch (seleteditem)
{
case "ABC":
return new TestDrillPageDetail("Test Drill Page Detail 1");

case "DEF":
return new TestDrillPageDetail("Test Drill Page Detail 2");

case "XYZ":
return new TestDrillPageDetail("Test Drill Page Detail 3");

default:
return new TestDrillPageDetail("Test Drill Page Detail 1");
}
}

通过这种方法,我想返回可以在按钮单击方法上使用的 Page 对象。如果我在此方法中使用 Page 而不是 void 作为返回类型,那么我会收到错误,例如,此方法的返回类型错误。

那么,有没有办法为上述方法定义返回类型呢?请帮忙。

最佳答案

命令结构不是为了那样使用它而设计的。但是您可以只定义一个公共(public)方法,而不是在代码中手动调用命令。

你的方法:

public Page ChangeMasterItem(string selecteditem)
{
switch (seleteditem)
{
case "ABC":
return new TestDrillPageDetail("Test Drill Page Detail 1");

// and so on ...
}
}

您可以像这样定义命令:
public ICommand MasterItemSelectedCommand => new Command<string>((selecteditem) =>
{
var mypage = ChangeMasterItem(selecteditem);

// You can use mypage now if you want
});

在您的按钮单击事件中,只需使用以下方法:
this.Detail = ViewModel.ChangeMasterItem(seleteditem);

关于xamarin - 在 Xamarin Forms 和 MVVM 中定义命令方法的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42826419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com