【发布时间】:2019-03-11 09:02:32
【问题描述】:
我想将命令(“EditOrCreateStudentCommand”)绑定到 DataGridTemplateColumn 中的按钮。 本例中的 DataContext 是 StudentViewModel。这是在 Grid 中定义的。
在 DataTemplate 中,我无法执行命令(没有任何反应)。 在模板之外,我可以毫无问题地执行命令。可能是什么原因?
<Grid DataContext="{Binding StudentViewModel}">
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Students}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" IsReadOnly="True" Width="*" />
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding Path=DataContext.EditOrCreateStudentCommand, RelativeSource={RelativeSource AncestorType=Grid}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
我已经在 stackoverflow 上查看了其他相同的问题,但没有一个解决了这个问题。
【问题讨论】:
-
DataGrid 列不是可视化树的一部分。您可以使用绑定代理:thomaslevesque.com/2011/03/21/…
标签: c# wpf xaml mvvm mvvm-light