Simbolu virkņu noformēšana WPF
Turpinot apgūt WPF noslēpumus, izdodas atklāta dažādas interesantas lietas. Piemēram, bieži gadās, ka jāizvada saraksts ar klienta vārdu, kas pie izvades ir jāsakombinē no diviem laukiem.
Ja būtu jāizvada pilnais vārds no šāda objekta
public class DataObject
{
public string Name { get; set; }
public string Surname { get; set; }
}
Sākumā, visticamākais ienāktu prātā:
- izveidot atsevišķu īpašību, kas atgrieztu apvienotos laukus
- vai arī XAMLā definēt
StackPanel, kas saturētu vairākus TextField, kuri būtu piesaistīti atbilstošajiem laukiem.
Lasot XAML špikeri (saiti var atrast mūsu wiki špikeru sadaļā), atradu, ka sākot ar .NET 3.5sp1 datu piesaistei ir iespējams izmantot StringFormat atribūtu, kas darbojas līdzīgi kā String.Format šabloni. Kombinācijā ar MultiBinding datu piesaisti, šis atribūts ļauj laukus sakombinēt datu piesaistes laikā:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="Name"/>
<Binding Path="Surname"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Var redzēt interesantu niansi gadījumā, kad
StringFormat šablons sākas ar kādu no vietrāžiem. Šādi šabloni ir jāsāk ar “{}” simboliem, savādāk tas tiek uzskatīts par iezīmju paplašinājumu. Sīkāku informāciju par to var izlasīt
MSDN tēmā par iezīmju paplašinājumiem.