Ala*_*an2 4 xamarin xamarin.forms
我有这个代码,我想将它移动到视图模型中:
resetButton.Clicked += async (sender, e) =>
{
if (App.totalPhrasePoints < 100 || await App.phrasesPage.DisplayAlert(
"Reset score",
"You have " + App.totalPhrasePoints.ToString() + " points. Reset to 0 ? ", "Yes", "No"))
App.DB.ResetPointsForSelectedPhrase(App.cfs);
};
Run Code Online (Sandbox Code Playgroud)
我意识到我需要设置这样的东西:
在我的XAML代码中;
<Button x:Name="resetButton" Text="Reset All Points to Zero" Command="{Binding ResetButtonClickedCommand}"/>
Run Code Online (Sandbox Code Playgroud)
在我的C#代码中:
private ICommand resetButtonClickedCommand;
public ICommand ResetButtonClickedCommand
{
get
{
return resetButtonClickedCommand ??
(resetButtonClickedCommand = new Command(() =>
{
}));
}
Run Code Online (Sandbox Code Playgroud)
但是如何将异步操作放入命令中呢?
Mat*_*iba 12
你可以尝试这样的事情:
(resetButtonClickedCommand = new Command(async () => await SomeMethod()));
async Task SomeMethod()
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
并扩展已经提供的答案,如果您需要将参数传递给命令,您可以使用类似
(resetButtonClickedCommand = new Command<object>(async (o) => await SomeMethod(o)));
async Task SomeMethod(object o)
{
// do stuff with received object
}
Run Code Online (Sandbox Code Playgroud)
你也可以用object你想要的任何东西替换上面的东西。
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |