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ā:

  1. izveidot atsevišķu īpašību, kas atgrieztu apvienotos laukus
  2. 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.
Published 18 February 2009 06:20 PM by ivars.arins
Filed under:

Leave a Comment

(obligāts) 
(obligāts) 
(brīvizvēles)
(obligāts)