DataGrid
' ItemsSource
是SomeService
项的列表。 SomeService类有一个方法StopServiceAsync
:
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Stop" cal:Message.Attach="[Event Click] = [Action StopServiceAsync($dataContext)]" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
我想从数据网格中停止服务。如果我按这样绑定按钮,我需要在 ViewModel 中使用StopServiceAsync(SomeService)
方法:
public async Task StopServiceAsync(SomeService service)
{
await service.StopServiceAsync();
}
但在现实生活中,有许多方法SomeService
成立,我不想在 ViewModel 中创建每个方法的副本。有没有办法将Button的Click动作直接绑定到$dataContext
?类似于cal:Message.Attach="[Event Click] = [Action $dataContext.StopServiceAsync]"
?(它不起作用)