2010-07-07 8 views
3

Je ai beaucoup de mal à trouver un bon exemple de la façon par programme créer, remplir et styler un ListView. Chaque exemple que je trouve a tendance à utiliser beaucoup de balisage XAML et une quantité minimale de C# pour changer le bit de balisage en cours d'exécution. Ceci est impossible pour moi car je ne connais pas la composition des colonnes, ni les styles prévus, au moment de la compilation. Ce dont j'ai besoin est assez trivial - un ListView où une cellule particulière pour une ligne donnée sera rouge si la valeur est négative, ou noir de la valeur est positive. Cependant, quelle est cette rangée et quelles sont les couleurs qui ne seront pas connues avant l'exécution (un exemple dynamique/programmatique sera suffisant).Comment ajouter par programme un convertisseur de liaison à un ListView WPF?

Ce que j'ai (simplifié) est quelque chose comme ceci:

string[] columns = new string[] { "Test", "Test2" }; 
ListView lv = new ListView(); 

/* Add Columns (works */ 
GridView viewLayout = new GridView(); 
foreach (string colName in columns) 
{ 
    viewLayout.Columns.Add(new GridViewColumn{ Header = colName }); 
} 
lv.View = viewLayout; 

/* Add Items (happy to go the .source path if it's easier) */ 
foreach (object d in GetData()) 
{ 
    lv.Items.Add(d); 
} 

/* Example style, fails */ 
lv.ItemContainerStyle.Setters.Add(
new Setter(Control.BackgroundProperty, *how do you connect the IValueConverter*) 
); 

Répondre

30

Utilisez une liaison, définissez la propriété Converter;)

new Binding() { Converter = new MyAwesomeConverter() } 
+0

Parfait. Hors de votes et va régler ce prochain jour de vote :-) Cheers –

+0

+1 Vous êtes beaucoup plus rapide. – Amsakanna

+1

Merci mr. Général Veers! : D (gros ventilateur SW ici;)) – Arcturus

Questions connexes