Bonjour, voila j'ai un soucis sur une application WPF.
J'ai un DataContext générer par l'outil.
J'ai un formulaire où il y a une liste et une groupbox.
Dans cette groupbox se trouve 2 textbox, une pour le code et l'autre pour la designation.
Voici le code xaml du formulaire
Le code behind :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Grid> <GroupBox x:Name="gbxDetail" DataContext="{Binding ElementName=lbxServices, Path=SelectedItem}"> <Canvas Width="552"> <TextBlock Margin="204,57,233,0" Text="Code :"/> <TextBlock Margin="204,90,233,90" Text="Désignation :"/> <TextBox Height="20" Margin="0,59,156,0" x:Name="txtCode" Text="{Binding code, Mode=TwoWay}" VerticalAlignment="Top" HorizontalAlignment="Right" Width="71" Canvas.Left="241" Canvas.Top="-5" /> <TextBox HorizontalAlignment="Right" Margin="0,92,84,95" Text="{Binding designation, Mode=TwoWay}" x:Name="txtDesignation" Width="143" Height="19.277" Canvas.Left="274" Canvas.Top="-5" /> <Button Height="29" HorizontalAlignment="Right" Margin="0,0,122,26" x:Name="cmdEmployes" VerticalAlignment="Bottom" Width="105" Canvas.Left="312" Canvas.Top="143">Employés</Button> </Canvas> </GroupBox> <ListBox x:Name="lbxServices" ItemsSource="{Binding}" HorizontalAlignment="Left" Width="198" /> </Grid>
Donc tout marche bien, sauf une chose, la listbox m'affiche Application.Modele.Service, j'aurai aimé avoir la désignation, donc je me suis dit qu'il suffisait de redéfinir la méthode ToString() dans la class du DataContext, mais le probleme c'est que je ne vois pas du tout comment faire, si je modifie le fichier cs du datacontext, il ne prend plus en compte les classes généré par l'outil.
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 private GesperDbDataContext _db; public Window1() { InitializeComponent(); this.Loaded += new RoutedEventHandler(Page1_Loaded); this.cmdEmployes.Click += new RoutedEventHandler(cmdEmployes_Click); } void cmdEmployes_Click(object sender, RoutedEventArgs e) { _db.SubmitChanges(); } void Page1_Loaded(object sender, RoutedEventArgs e) { _db = new GesperDbDataContext(); Binding Bind = new Binding(); Bind.Source = _db.service.ToObservableCollection(); lbxServices.SetBinding(DataContextProperty, Bind); }
Donc si vous avez une idée, peut etre qu'il suffit de spécifier quelque part qu'il nous faut seulement affiché la désignation dans la listbox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public override string ToString() { return this.designation; }
Merci d'avance
Partager