В этом примере у меня есть две кнопки. Кнопка в шапке работает, но та, что в сетке, показывает ошибку, показанную ниже.
<GroupBox DockPanel.Dock="Top" >
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<Label Content="Recent Servers" />
<CheckBox Content="Auto-Refresh" />
<Button Content="Monitor" Command="{Binding MonitorCommand, ElementName=Top}" CommandParameter="{Binding}" />
</StackPanel>
</GroupBox.Header>
<DataGrid CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" ItemsSource="{Binding ServerHistory}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Machine Name" Binding="{Binding DataPoints[ServerName], Mode=OneWay}" />
<DataGridTextColumn Header="Last Heartbeat" Binding="{Binding DataPoints[LastHeartbeat], Mode=OneWay}"/>
<DataGridTemplateColumn Header="Monitor">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Monitor" Command="{Binding MonitorCommand, ElementName=Top}" CommandParameter="{Binding}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</GroupBox>
System.Windows.Data Ошибка: 4: не удается найти источник для привязки со ссылкой «ElementName = Top». BindingExpression: Path = MonitorCommand; DataItem = NULL; Целевым элементом является «Кнопка» (Имя = ''); Свойство target - «Команда» (тип «ICommand»)