Bonjour à tous,
Je rencontre un petit problème qui doit être tout bête mais malheureusement je ne trouve pas de solution. Je vais prendre un exemple.
Une ListBox liste mes utilisateurs, à chaque fois que j'en selectionne un je veux afficher son ID dans une textbox plus bas.
=> fonctionnement ok
Code xml : 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 <StackPanel> <ListBox x:Name="ListBoxAllUser" Width="200" Height="100" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=ListAllUser, Mode=OneTime}"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock> <TextBlock.Text> <MultiBinding StringFormat="{}{0} {1}"> <Binding Path="Lastname" /> <Binding Path="Firstname" /> </MultiBinding> </TextBlock.Text> </TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <TextBlock Text="{Binding Path=ListAllUser/Id, Mode=OneWay, StringFormat={}ID: {0}}" /> </StackPanel>
Code c# : 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 public partial class Main : Window { public struct StructContext { public List<UserEntity> ListAllUser { get; set; } } public Main() { InitializeComponent(); DataContext = new StructContext { ListAllUser = new BLL.Business().GetAllUser() }; } }
Par contre maintenant au lieu d'afficher l'ID je voudrais afficher le répertoire ce cet utilisateur. Hors celui ci ne possède pas cette propriété, c'est le principe. Je l'obtiens en passant l'id de l'utilisateur à une méthode.
Code c# : 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 public class UserEntity { public UserEntity() { } public UserEntity(long id, string lastname, string firstname) { Id = id; Lastname = lastname; Firstname = firstname; } public long Id { get; set; } public string Lastname { get; set; } public string Firstname { get; set; } }
J'ai une méthode qui me donne ce répertoire
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public string GetDirectoryUser(long idUser) { //Le path (ici en dur) est sauvegardé dans un fichier xml. return @"c:\machine\chemin\" + idUser; }
Comment pouvoir appeler cette méthode à partir de mon fichier xaml?
J'ai regardé du côté de ObjectDataProvider mais je ne sais pas comment mis prendre:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <Window.Resources> <ObjectDataProvider x:Key="BusinessInstance" ObjectType="{x:Type bll:Business}" MethodName="GetDirectoryUser"> <!-- Si je ne déclare pas d'argument, j'ai une erreur, mais je ne peux pas mettre de binding ici --> </ObjectDataProvider> </Window.Resources>
Deux précision:
- ma méthode et ma classe ne sont pas statique.
- converter : à oublier.
Si quelqu'un à une idée je suis preneur.
Merci d'avance.
Partager