在我的WPF应用程序中,我在绑定到RelayCommand的数据网格的每一行中都有一个按钮。如果有人单击某行中的按钮,则执行该命令的基础方法。
不幸的是,这只适用于第二次点击!我第一次单击行中的按钮时,只选择了行。在第二次单击时,将执行该命令。
如果我之前选择了该行,那么第一次点击该按钮就可以了。
我做错了什么?
XAML:
<DataGrid AutoGenerateColumns="False"
IsReadOnly="True"
Style="{StaticResource DataGridStyle}"
ItemsSource="{Binding Path=Rows, Mode=OneWay}"
SelectedItem="{Binding Path=SelectedRow}">
<DataGrid.Columns>
<DataGridTextColumn Header="Number"
Width="Auto"
Binding="{Binding Path=Number}" />
<DataGridTemplateColumn Header= "Cancel"
Width="Auto" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding RelativeSource={RelativeSource
AncestorType=Expander},
Path=DataContext.CancelCommand}"
HorizontalAlignment="Center"
Width="20"
IsEnabled="{Binding IsCancelable}"
Visibility="{Binding RelativeSource={RelativeSource
AncestorType=DataGrid},
Path=DataContext.PermissionToWrite,
Converter={StaticResource
boolToVisibilityConverter}}"
>X</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>