オブジェクトを含む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);
}
}
}
ありがとう !