Domanda listview con immagini bindate

  • venerdì 20 luglio 2012 07:44
     
      Contiene codice

    salve,

    ho creato una doppia listview con l'intenzione di mettere nella prima il nome utente e nella seconda lo status(online/offline)

    <ListView Height="116.655"  HorizontalAlignment="Right" Margin="0,56.661,169.983,0" Name="lvContact" VerticalAlignment="Top" Width="120" OverridesDefaultStyle="False" Foreground="White" Background="Transparent" BorderBrush="Transparent" SelectionMode="Single">
            <ListView Height="117.766" HorizontalAlignment="Right" Margin="0,55.55,44.44,0" Name="lvContact_status" OverridesDefaultStyle="False" VerticalAlignment="Top" Width="120" Foreground="White" Opacity="1" Background="Transparent" Focusable="True" BorderBrush="Transparent" IsHitTestVisible="False" />

    i valori si ottengono da un ciclo su di una hashtable:

     foreach (DictionaryEntry de in contactListHash)
                        {
                            System.Windows.Forms.ListViewItem contactItem = new System.Windows.Forms.ListViewItem(de.Key.ToString());
                                lvContact.Items.Add(contactItem.Text.ToString());
                                lvContact_status.Items.Add(de.Value.ToString());
                            }

    dove "key" contiene il nome utente e "value" lo stato dell'utente (NLN,OFF)

    mia intenzione è quindi di inserire un'immagine (invece che il testo NLN/OFF) in corrispondenza della lvContact_status

    Idee?

    grazie anticipatamente


    • Modificato siam_dev venerdì 20 luglio 2012 07:45
    •  

Tutte le risposte

  • venerdì 20 luglio 2012 07:53
     
     

    Ciao siam_dev,

    You wrote on 20/07/2012 :

    Idee?

    si, passi ad un sano databinding invece di fare le cose a manina e usi un converter.

    .m



    blog @ //milestone.topics.it
  • venerdì 20 luglio 2012 08:18
     
     

    Ciao Mauro,

    grazie per la risposta...sul databinding non avrei problemi...per quel che concerne invece il converter...cosa intendi? potresti linkarmi a qualche risorsa?

    grazie ancora.

  • venerdì 20 luglio 2012 08:24
     
     

    Ciao siam_dev,

    You wrote on 20/07/2012 :

    Ciao Mauro,

    grazie per la risposta...sul databinding non avrei problemi...per quel che concerne invece il converter...cosa intendi? potresti linkarmi a qualche risorsa?

    http://lmgtfy.com/?q=How+to+WPF+Converter

    :-)

    grazie ancora.

    .m



    blog @ //milestone.topics.it
  • venerdì 20 luglio 2012 09:30
     
     

    mmh... è dura la vita...

    pensavo di riuscire a bindare l'hashtable con la listview invece...

    qualcuno di buon cuore che butta due righe di pseudocodice?

  • sabato 21 luglio 2012 16:04
     
     

    Ciao siam_dev,

    You wrote on 20/07/2012 :

    mmh... è dura la vita...

    pensavo di riuscire a bindare l'hashtable con la listview invece...

    qualcuno di buon cuore che butta due righe di pseudocodice?

    quale è il problema?
    puoi postare la forma della tua struttura dati?

    .m



    blog @ //milestone.topics.it
  • mercoledì 1 agosto 2012 09:36
     
      Contiene codice

    Ciao Mauro,

    allora io ricevo la seguente struttura dati  Hashtable contactListHash composta dove la key è il nome utente e value è lo stato online (ON/OFF) .

    La mia idea è quella di creare un'associazione con una listview dove il nome degli utenti online è verde viceversa gli utenti offline sono rossi.

    Con winform riesco a farlo cosi:

    foreach (DictionaryEntry de in contactListHash)
    {
    ListViewItem contactItem = new ListViewItem(de.Key.ToString());
    
    if (de.Value.ToString() == "NLN")
    {
    contactItem.ForeColor = Color.Green;
    }
    else
    {
    contactItem.ForeColor = Color.Gray;
    }
    
    
    lvContact.Items.Add(contactItem);
    lvContact.Invalidate();
    lvContact.Refresh();
    
    
    
    }


    per utilizzare il Binding con wpf come potrei fare?

    grazie 1000.


    • Modificato siam_dev mercoledì 1 agosto 2012 09:36
    •  
  • lunedì 6 agosto 2012 05:00
     
     

    Ciao siam_dev,

    You wrote on 01/08/2012 :

    Ciao Mauro,

    allora io ricevo la seguente struttura dati  Hashtable contactListHash composta dove la key è il nome utente e value è lo stato online (ON/OFF) .

    La mia idea è quella di creare un'associazione con una listview dove il nome degli utenti online è verde viceversa gli utenti offline sono rossi.
    Con winform riesco a farlo cosi:

    foreach (DictionaryEntry de in contactListHash)
    {
    ListViewItem contactItem = new ListViewItem(de.Key.ToString());
    
    if (de.Value.ToString() == "NLN")
    {
    contactItem.ForeColor = Color.Green;
    }
    else
    {
    contactItem.ForeColor = Color.Gray;
    }
    
    lvContact.Items.Add(contactItem);
    lvContact.Invalidate();
    lvContact.Refresh();
    
    }



    per utilizzare il Binding con wpf come potrei fare?

    <ListView ItemsSource="{Binding Path=YourListPropertyHere}">
     <ListView.ItemTemplate>
        <DataTemplate>
           <TextBlock Text="{Binding Path=Key}"
                      ForeColor="{Binding Path=Value, Converter={StaticResource yourConverterResourceKey}}" />
        </DataTemplate>
     </ListView.ItemTemplate>
    </ListView>

    grazie 1000.

    .m



    blog @ //milestone.topics.it