通过单击“行”在 DataGrid 中选择一行

Bis*_*h25 5 c# wpf xaml datagrid

我有一个DataGrid尝试通过选择行而不是单元格来更改所选项目。正如您从下图中看到的那样,当我单击单元格外部时,该项目不会更新。

用户尝试在空白单元格上选择行的 GIF

<DataGrid x:Name="customerListBox" SelectedItem="{Binding SelectedCustomer, UpdateSourceTrigger=PropertyChanged}" SelectionMode="Single" IsReadOnly="True"  ItemsSource="{Binding Customers}"  Margin="10,57,10,10"  AlternationCount="2"  BorderThickness="1" SnapsToDevicePixels="True"  AutoGenerateColumns="False" BorderBrush="Black" Foreground="Black">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Id}" Header="Id"/>
        <DataGridTextColumn Binding="{Binding Name}"  Header="Name"/>
        <DataGridTextColumn Binding="{Binding Phone}"  Header="Phone"/>
        <DataGridTextColumn Binding="{Binding Email}" Header="Email"/>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

我可以做的就是将最后一列的宽度设置为*然而,这会使标题居中,并且在宽屏幕显示器上显示时看起来很混乱。

<DataGridTextColumn Binding="{Binding Email}" Width="*" Header="Email"/>
Run Code Online (Sandbox Code Playgroud)

设置为 * 时的列

小智 4

我有解决此问题的解决方法,只需在最后一列之后添加虚拟空列,宽度为“*”