0

オブジェクトを含むDataGridバインディングでa を埋めました。List<>に表示させることはできます DataGridが、問題は行を選択できないことです。を追加するIsSynchronizedWithCurrentItemと、最初の行が選択されているように見えましたが(行の青い背景)、削除することさえできず、変更できませんでした。私DataGridのXAMLは次のようになります。

<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#の部分です。

        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);
            }
        }
    }

ありがとう !

4

0 に答える 0