Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Listview kolona sa slikom

[es] :: .NET :: WPF Programiranje :: Listview kolona sa slikom

[ Pregleda: 1985 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cesare
Misko Petrovic

Član broj: 55805
Poruke: 201
*.dynamic.sbb.rs.



+1 Profil

icon Listview kolona sa slikom27.02.2011. u 11:42 - pre 159 meseci
Pozdrav svima !!!

Potrebno mi je da u jednoj istoj ListView kontroli zavisno od izbora korisnika, koji se vrsi odabirom cvora TreeView kontole, prikazem podatke iz baze. Zavisno od tog odabira, ListView treba da sadrži različite kolone. Zato se sve kolone liste kreiraju uz pomoć koda. Kreiranje i povezivanje kolona liste koje prikazuju tekstualne podatke sam napravio i to radi. Međutim, potrebno mi je da u nekim slučajevima lista prikaze u prvoj koloni sliku, a zatim tekst - npr. slika radnika, prezime radnika, ime radnika. Ovu kolonu koja prikazuje sliku i njeno povezivanje sa izvorom podataka imam u XAML "varijanti" :

Code:

<ListView.View>
<GridView>
<GridViewColumn Header="Slika">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid>
<Image Height="128" Width="128" Source="{Binding Slika}" />
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View> 


Kako ovo uraditi uz pomoć C# ili VBNET koda ?
Ili bar kako obrisati određene kolone liste opet uz pomoć C# ili VBNET koda ?

Unapred hvala ...
 
Odgovor na temu

Dusan Kondic
Programer
ZR "Parametar" Ljubovija
Ljubovija

Član broj: 49961
Poruke: 225
*.dynamic.isp.telekom.rs.

Sajt: www.drinacoding.com


+14 Profil

icon Re: Listview kolona sa slikom28.02.2011. u 08:06 - pre 159 meseci
Nemam pravo rešenje, ali evo nekih iskustava.
Brisanje kolona možeš da izvršiš sa dt.Columns.Clear();
Slike verovatno mogu da se uvoze/prikazuju iz baze i/ili sličnog izvora
bez problema, ali ja sam posle dosta muke (radim sa više dll-ova) od
toga odustao i rešio svoje probleme na sledeći način.
Slike koje se ne ažuriraju u programu, a želim da ih dinamički dodajem,
držim u Projekat > Properties > Resources, pa im pristupam pomoću
Code:

            Image img = new Image();
            img.Source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Properties.Resources.NazivSlicice.GetHbitmap(), 
                IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(24, 24));
            Button1.Content = img;

Fotografije radnika držim u jednom direktorijumu na serveru, a u bazu upisujem samo putanje do njih.
Na npr. DataGrid_SelectionChanged fotografiju izabranog radnika prikazujem u posebnoj kontroli pomoću koda:
Code:

                    DataRowView drv = (DataRowView)dg.SelectedItem;
                    string FotoPutanja; // = iščitana putanja iz baze

                    if (drv[36].ToString() != "")
                    {
                        FotoPutanja = drv[36].ToString();
                        Stream FileOpenStream;
                        Byte[] ByteArray;
                        BitmapImage mojaFotografija = new BitmapImage();
                        mojaFotografija.BeginInit();
                        mojaFotografija.UriSource = new Uri(FotoPutanja);
                        FileOpenStream = new FileStream(FotoPutanja, FileMode.Open);
                        using (BinaryReader br = new BinaryReader(FileOpenStream))
                        {
                            ByteArray = br.ReadBytes(Convert.ToInt32(FileOpenStream.Length));
                        }
                        mojaFotografija.StreamSource = new System.IO.MemoryStream(ByteArray);
                        mojaFotografija.DecodePixelWidth = 100;
                        mojaFotografija.EndInit();
                        ImageSource imgsrc = (ImageSource)CreateResizedImage((ImageSource)mojaFotografija, 90, 130);
                        imgFoto.Source = imgsrc;
                    }
                    else
                    {
                        FotoPutanja = null;
                        imgFoto.Source = null;
                    }
                    //imgFoto je Image kontrola u Window-u

Ažuriranje fotografije vršim ažuriranjem putanje u bazi i brisanjem stare fotografije pomoću
System.IO.File.Delete("StaraPutanja");
 
Odgovor na temu

[es] :: .NET :: WPF Programiranje :: Listview kolona sa slikom

[ Pregleda: 1985 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.