Bonjour,

D'avance pardon si je ne suis pas dans le bon forum pour posez ma question

J'ai une class de ce type que j'utilise dans Xamarin.Forms

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
 
namespace xamacaraide
{
    public class ModelViewchir
    {
        public int Num { get; set; }
        public Chirurgie Itemchir { get; set; }
        public Annee Itemanee { get; set; }            
    }
 
    public class Annee
    {
        public int Iddate { get; set; }
        public string Lannee { get; set; }    
    }
 
    public class Chirurgie 
    {                
        public string Chir { get; set; }
        public int IdEntry { get; set; }
        public bool Champsvide { get; set; }            
    }
}
J'ai besoin de sauvegarder les données de cette classe dans le dictionnaire j'ai donc fait ceci:


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
 
<Application.Resources>
        <ResourceDictionary>
 
            <x:Array Type="{x:Type local:Chirurgie}" x:Key="Itemchir">
                <local:Chirurgie Chir="" IdEntry="0" Champsvide="true"/>
            </x:Array>
 
            <x:Array Type="{x:Type local:Annee}" x:Key="Itemanee">
                <local:Annee Lannee="" Iddate="0"/>
            </x:Array>
 
            <x:Array Type="{x:Type local:ModelViewchir}" x:Key="AtcdChir">
                <local:ModelViewchir Num="0"/>
                <local:ModelViewchir x:Key="{StaticResource Itemchir}" />
                <local:ModelViewchir x:Key="{StaticResource Itemanee}" />
            </x:Array>
 
        </ResourceDictionary>
    </Application.Resources>

La compilation ne lève pas d'erreur donc a défaut d'avoir une correspondance entre les 2 , structurellement ma ressource n'est pas fausse....
La ou je bloque c'est quand je souhaite récupérer ma ressource et l'utiliser. L'application se met en mode pause


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
 
public partial class Page6 : ContentPage
    {
        public ObservableCollection<ModelViewchir> Conteneur = new ObservableCollection<ModelViewchir>();        
        public int compteur = 0;
 
        public Page6()
        {
            InitializeComponent();
 
            foreach (var s in (Array)Application.Current.Resources["AtcdChir"])
            {               
                listevisible.ItemsSource = Creaconteneur(((ModelViewchir)s).Itemchir.Chir, ((ModelViewchir)s).Itemanee.Lannee);               
            }
        }
 
        public ObservableCollection<ModelViewchir> Creaconteneur(string thechir, string theannee)
        {
            var items = Conteneur;
 
            var ajoutannee = new Annee() { Iddate = compteur, Lannee = theannee };
            var ajoutchir = new Chirurgie() { IdEntry = compteur, Chir = thechir, Champsvide = true };
 
            Conteneur.Add(new ModelViewchir() { Num = compteur, Itemchir = ajoutchir, Itemanee = ajoutannee});
 
            compteur++;
            return items;
        }
}

J'ai essayer d'isoler le blocage il se trouve sur cette ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
listevisible.ItemsSource = Creaconteneur(((ModelViewchir)s).Itemchir
s est un objet. le cast en Modelviewichir ne pose pas de probleme, l'intellisense trouve bien itemchir puis chir mais ça met l'app en pause.
Je voit pas d'ou vient le probleme, si vous aviez une piste.

merci de votre aide et bonne fête