2017-08-01 5 views
0

J'utilise RadGridView dans WPF. Pour son ItemsSource, j'utilise ceci:C# WPF - Valeur de liaison du dictionnaire en tant que valeur de dictionay parent

Dictionary<DateTime, Dictionary<int, double>> 

Parce que c'est le meilleur moyen que j'ai trouvé. Je crée dynamiquement des colonnes. Pour les valeurs de liaison, je l'ai fait:

colonneDate.DataMemberBinding = new Binding("key"); 
colonneVariable.DataMemberBinding = new Binding(string.Format("value[{0}].value", v.Id)); 

Mais le second ne fonctionne pas (il y a un résultat vide). Je ne sais pas comment je peux obtenir la valeur de la valeur.

Pouvez-vous m'aider?

Merci!

+1

Salut Will, merci pour votre réponse. J'ai pensé utiliser une classe personnalisée mais il y aura trop de lignes car pour une même date j'ai différents couples ID/Valeur. C'est pour ce que j'ai utilisé Dictionnaire dans le dictionnaire. Donc, j'ai cherché d'une autre façon, et j'irai utiliser DataTable comme ItemsSource. J'ai inversé les colonnes DataTable et l'ai poussé dans RadGridView. Le problème est contourné. –

+0

J'ai donc une autre question: si j'utilise une liste et une classe personnalisée, ItemsSource sera la liste des classes personnalisées. par exemple: ' "05/01/2014 - 1 - 12.5" "05/01/2014 - 2 - 15" "05/01/2014 - 3 - 1.5"' Comment je peux les éléments distincts par date et l'afficher par ID (deuxième propriété)? En fait, j'utilise un DataTable qui est inversé en pivot. –

Répondre

0

var = new liaison liaison

{ chemin = new PropertyPath ("DoubleValue"),

StringFormat = "{0:F1}" 

};

textBlock.DataContext = viewModel;

textBlock.SetBinding (TextBlock.TextProperty, binding);

+0

Salut, Cela ne fonctionne pas, mais pourquoi vous utilisez TextBlock? Je suis en train de définir GridViewDataColumn. Je vous remercie –

0

Je contournées mon problème:

Pour remplacer mon dictionnaire, j'utilise une table de données (comme je l'ai dit dans un commentaire). J'ai inversé ce DataTable avec une méthode pour avoir le résultat voulu. Après cela, j'utilise un DataGrid (remplacer RadGridView). ItemsSource est mon DataTable et les colonnes et les lignes sont générées automatiquement.

J'espère que cette aide.