C# WPF数据网格可以';不要选择一行

C# WPF数据网格可以';不要选择一行,c#,wpf,datagrid,C#,Wpf,Datagrid,我用包含对象的列表的绑定填充了DataGrid。我可以让它们出现在数据网格中,但问题是,我无法选择行。当我添加IsSynchronizedWithCurrentItem时,第一行似乎已被选中(该行的蓝色背景),但我无法更改它,甚至无法删除它。下面是我在XAML中的DataGrid的样子: <Window x:Class="ClientTrackerWPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/

我用包含对象的
列表的绑定填充了
DataGrid
。我可以让它们出现在
数据网格中,但问题是,我无法选择行。当我添加
IsSynchronizedWithCurrentItem
时,第一行似乎已被选中(该行的蓝色背景),但我无法更改它,甚至无法删除它。下面是我在XAML中的
DataGrid
的样子:

<Window x:Class="ClientTrackerWPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="560" Width="594" KeyDown="Window_KeyDown">
    <Grid>
         <DataGrid AutoGenerateColumns="False" Height="231" HorizontalAlignment="Left" Margin="1,2,0,0" Name="datagridClients"
                  VerticalAlignment="Top" Width="500" HorizontalScrollBarVisibility="Disabled" SelectionChanged="datagridClients_SelectionChanged"
                  SelectionMode="Single" IsSynchronizedWithCurrentItem="True">
                <DataGrid.Columns>
                      <DataGridTextColumn Header="Prénom" MinWidth="175" Binding="{Binding Path=_prenom}" />
                      <DataGridTextColumn Header="Nom" MinWidth="175" Binding="{Binding Path=_nom}" />
                      <DataGridTextColumn Header="Téléphone" MinWidth="150" Binding="{Binding Path=_telephone}" />
                </DataGrid.Columns>
         </DataGrid>
     </Grid>
</Window>

我试着在这里和谷歌上搜索,但找不到对我有用的东西。顺便说一下,我用的是C

这是C部分

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
使用System.Windows.Documents;
使用System.Windows.Input;
使用System.Windows.Media;
使用System.Windows.Media.Imaging;
使用System.Windows.Navigation;
使用System.Windows.Shapes;
命名空间ClientTrackerWPF
{
/// 
///Logique d'interaction pour main window.xaml
/// 
公共部分类主窗口:窗口
{
BDD-BDD;
列出客户名单;
bool start=false;
公共主窗口()
{
初始化组件();
}
私有void initilisationApp()
{
bdd=新的bdd();
bdd.startConnection(“clients.sqlite”);
listclients=新列表();
listclients=bdd.getAllClients();
datagridClients.ItemsSource=ListClients;//绑定的源
tabMain.IsEnabled=true;
menuFileInit.Visibility=Visibility.Collapsed;
menuFileNewClient.Visibility=Visibility.Visible;
开始=真;
}
private void menuFileInit_单击(对象发送方,路由目标)
{
initilisationApp();
}
私有void datagridClients\u SelectionChanged(对象发送方,selectionchangedventargs e)
{
控制台写入线(e.Source);
}
}
}

谢谢

显示网格的
部分。确保在datagridClients\u SelectionChanged中未设置事件参数的Handled属性。e、 已处理=正确;我编辑了代码并添加了列@安迪,我试过用e.Handled=真;但它没有改变任何事情,事实上,我正在学习C#WPF,所以我的代码非常基本。@Stealthunter将你的C#代码连同完整的XAML@HighCore在这里,我添加了C#部分和更多的XAML。
        using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;

    namespace ClientTrackerWPF
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            BDD bdd;
            List<Client> listeClients;
            bool started = false;

            public MainWindow()
            {
                InitializeComponent();
            }

            private void initilisationApp()
            {
                bdd = new BDD();
                bdd.startConnection("clients.sqlite");

                listeClients = new List<Client>();
                listeClients = bdd.getAllClients();
                datagridClients.ItemsSource = listeClients; //The source of the binding

                tabMain.IsEnabled = true;
                menuFileInit.Visibility = Visibility.Collapsed;
                menuFileNewClient.Visibility = Visibility.Visible;
                started = true;
            }

            private void menuFileInit_Click(object sender, RoutedEventArgs e)
            {
                initilisationApp();
            }
            private void datagridClients_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                Console.WriteLine(e.Source);
            }
        }
    }