Caliburn.Micro:从DataGrid调用$ dataContext上的方法

时间:2015-12-23 12:48:02

标签: c# xaml data-binding datagrid caliburn.micro

DataGrid' ItemsSourceSomeService项的列表。 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]"(它不起作用)

0 个答案:

没有答案