Bonjour à tous,
Je cherche désespérément à alimenter un Combobox dans un Datagrid en WPF.
Voici le contexte :
J'alimente deux colonne d'un Datagrid avec une requête SQL. Je souhaite que la troisième colonne, un combobox, soit alimentée indépendamment avec trois valeurs fixes.
Je me suis inspiré de ce site : http://www.c-sharpcorner.com/uploadf...tagrid-in-wpf/ mais le combo box ne s'alimente pas.
Il y a certainement une erreur dans mon code mais je ne vois pas où...
Voilà mon code c# :
Et voici mon XAML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public MainWindow() { InitializeComponent(); List<TicketInfo> ticketsList = new List<TicketInfo> { new TicketInfo{ Status="Open"}, new TicketInfo{ Status="Assigned"}, new TicketInfo{ Status="Open"}, new TicketInfo{ Status="Open"}, new TicketInfo{ Status="Closed"}, new TicketInfo{ Status="Open"}, new TicketInfo{ Status="Open"} }; } private void Remplir_Jobs_DG() { ConstructionBuilder(); var connectionString = builder.ConnectionString; SqlConnection cnx = new SqlConnection(connectionString); cnx.Open(); var requete = "select NomJob as 'Job', Type as 'Type' from Jobs inner join Clients on Clients.idclient = Jobs.idclient inner join srv_sauv on srv_sauv.idsrvsauv = jobs.idsrvsauv inner join Type_Sauvegarde on Type_Sauvegarde.id = jobs.idtype where nom = " + "'" + ClientLV.SelectedValue.ToString() + "' and srv_sauv.nomserveur = " + "'" + ServeursLB.SelectedValue + "'"; SqlCommand cmd = new SqlCommand(requete, cnx); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable("Jobs"); sda.Fill(dt); JobsDG.ItemsSource = dt.DefaultView; cnx.Close(); //object item = MonDataGrid.SelectedItem; //string ID = (MonDataGrid.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text; } public class TicketInfo { public string Status { get; set; } } public class StatusList : List<string> { public StatusList() { this.Add("Assigned"); this.Add("Closed"); this.Add("In Progress"); this.Add("Open"); this.Add("Resolved"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <Window.Resources> <ResourceDictionary> <staticData:StatusList x:Key="StatusList" /> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Ressources\Style.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Window.Resources> <DataGrid x:Name="JobsDG" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Height="165" Width="332" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Grid.Column="2" AutoGenerateColumns="False" SelectionChanged="JobsDG_SelectionChanged"> <DataGrid.Columns> <DataGridTextColumn Header="Jobs" Binding="{Binding Job}" /> <DataGridTextColumn Header="Type" Binding="{Binding Type}" /> <DataGridTemplateColumn Header="Status" Width="100"> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <ComboBox Name="ComboBoxStatus" Height="22" ItemsSource="{StaticResource StatusList}" SelectedItem="{Binding Status}" /> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid>
Est-ce que je suis passé à côté de quelque chose ??
Je vois bien que dans le C# je ne remplie pas le ComboBox mais comment faire ?
Par avance merci pour éclaircissements !
Partager