Ted jsem se trochu zasekl na vytvareni ToolTipu na kazde polozce ListBoxu, a na scesti me privedli i nektere rady na webu, ale o tom az nize. Cely kod je tentokrat velice primitivni. Prvne si vytvorime ListBox, se sablonou, ktera bude zobrazovat TextBlock a nad nim ToolTip. Data budeme brat pomoci Data Bindingu:
Problem s nekterymi clanky na webu byl ten ze jsem chtel pouzit primo misto s vnitrnim TextBlockem a pak mi to hazelo tuto vyjimku: “Add value to collection of type ‘System.Windows.Documents.InlineCollection’ threw an exception.”. Druhym krokem je pak vytvoreni vlastni tridy, ktera bude obsahovat vlastnosti DirectoryName a FileName, tak jak jsou zminovany v XAMLu. Metoda FS.GetPathAndFileName je velice jednoducha, pouze vraci pomoci out vystup metody Path.GetDirectoryName() a Path.GetFileName():
C#
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
30
usingSystem.Windows.Controls;
usingSystem.Windows.Documents;
classSong
{
publicSong(stringfn)
{
stringp,s;
FS.GetPathAndFileName(fn,outp,outs);
FileName=s;
DirectoryName=p;
}
publicstringFileName
{
get
;
set
;
}
publicstringDirectoryName
{
get
;
set
;
}
publicoverridestringToString()
{
returnFileName;
}
}
Poslednim krokem je naplneni ListBoxu, to samozrejme provedeme v Code-Behindu: