第一次单击时按钮命令不会触发

时间:2013-12-30 10:18:34

标签: wpf xaml binding wpfdatagrid

在我的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>

0 个答案:

没有答案