我如何从 Xaml(单击时)运行异步方法,通常我使用这样的东西:
xmlns:ii="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:eii="http://schemas.microsoft.com/expression/2010/interactions"
<Button Height="30" Width="200" Content="Save" >
<ii:Interaction.Triggers>
<ii:EventTrigger EventName="Click">
<eii:CallMethodAction TargetObject="{Binding}" MethodName="Saveing"/>
</ii:EventTrigger>
</ii:Interaction.Triggers>
</Button>
保存方法:
public async Task Saveing(){...}
最佳答案
MVVM 的重点是将 UI 与处理分离。
绑定(bind)Command
将按钮的属性设置为 ICommand
ViewModel 中的(RelayCommand 或其他实现)项。该命令的相关方法可以在 async
中调用。方式。例如。
public ICommand SaveCommand {get; private set;}
private async Task SaveMethodAsync()
{
await dbService.SaveDataAsync(modelItem).ConfigureAwait(false);
...
}
public ViewModel()
{
SaveCommand = new RelayCommand(async () =>
await SaveMethodAsync().ConfigureAwait(false));
}
关于c# - 从 Xaml 运行异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40235511/