Bonjour à tous,
Voici mes 2 usercontrols:
Lieu où j'affiche mes fichiers via
<UserControl ...>
<ListView x:Name="lvwFiles" Grid.Row="1" ItemsSource="{Binding Files}" >
<ListView.View>
<GridView>
<GridViewColumn Header="Nom du fichier" Width="Auto" DisplayMemberBinding="{Binding Name}" CellTemplateSelector="{Binding ShowFileContent}" />
</GridView>
</ListView.View>
</ListView>
</userControl>
Lieu où doit être afficher le contenu de l'item sélectionné:
Et voici ma ViewModel du ListView:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <UserControl ...> <grid> <RichTextBox Grid.Row="1" Grid.ColumnSpan="3" IsEnabled="False" Document="{Binding ElementName=ViewType, Path=SelectedItem.Tag}" /> </Grid> </UserControl>
Mon but étant de lire les lignes et les écrire dans mon richtextbox (en lecture/écriture) voici mon "helpers":
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
51
52
53
54
55
56
57
58 class FileVM : ObservableCollection<FileModel> { #region properties private FileInfo[] _files; public FileInfo[] Files { get { return _files; } set { _files = value; OnPropertyChanged("Files"); } } private bool _isFileSelected; public bool IsFileSelected { get { return _isFileSelected; } set { _isFileSelected = value; OnPropertyChanged("IsFileSelected"); } } private FileModel _selectedFile; public FileModel SelectedFile { get { return _selectedFile; } set { _selectedFile = value; OnPropertyChanged("SelectedFile"); } } #endregion #region constructor public FileVM() { } #endregion #region method public void ShowContent() { if(_isFileSelected) { ReadFilesController rfc = new ReadFilesController(_selectedFile.Files.ToString()); } } #endregion #region PropertyChanged public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } #endregion }
(oui, je sais, il n'est pas encore finit x) )
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 class ReadFilesController : INotifyPropertyChanged { #region properties private string _filepath; public string Filename { get { return _filepath; } set { _filepath = value; OnPropertyChanged("Filename"); } } #endregion #region constructor public ReadFilesController(string filename) { _filepath = filename; } #endregion #region methods public void Reader() { try { using () { string line = ""; while () { } } } catch (Exception ex) { } } #endregion #region PropertyChanged public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } #endregion }
Le problème que j'ai est que je n'arrive pas à me schématisé ça correctement pour pouvoir faire un code propre sur: sélectionné l'élément -> envoyer à mon helpers <-> (récupérer par mon viewmodel? <->) récupérer dans mon second usercontrol qui contient ma richtextbox et binder le contenu.
Je bloque même aux premières étapes j'ai l'impression, lorsque je sélectionne, je suis même pas (enfin si, j'utilise mon debug) de passer dans _isSelected = True; selectedItem = l'item sélectionné. J'sais pas si je suis assez clair
Partager