Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
python week

Diskuze: Ako v xaml použiť stringy z inej triedy

Aktivity
Avatar
Štefan Kiss
Člen
Avatar
Štefan Kiss:5.11.2020 14:41

Dobrý deň, priatelia, pracujem na aplikácii, ktorá má mať podporu pre viac jazykov. Všetky stringy rozhrania preto nepíšem priamo do xaml, ale mám samostatnú triedu Strings, ktorá má vnorené ďalšie triedy ako Menu Dialogs Errors a podobne. Vlastnosti týchto vnorených tried sú potom už konkrétnymi stringami.

Zkusil jsem:

public static class Strings
    {

public static class Menu
{
        public static string Otvorit { get; private set; } = "Otvoriť";
        public static string Zatvorit { get; private set; } = "Zatvoriť";
        public static string Ulozit { get; private set; } = "Uložiť";
    }
}

Potom som v xaml chcel urobiť niečo ako

<MenuItem Header="{x:Static local:Strings.Menu.Otvorit}"/>

trieda Strings je samozrejme súčasťou toho istého Namespace ako okno. Lenže kompilátor sa tvári, že triedu Strings vôbec nevidí. Ani pomocník mi po napísaní local: triedu Strings vôbec neponúka.

Chci docílit: Chcel by som priamo v xamli napr. pri písaní menu či tlačidiel priraďovať objektom tieto stringy. Určite sa to v princípe dá, no asi mám zle deklarované triedy s reťazcami. Tipujem, že mu vadí to, že jedna trieda je vnorená v inej, hoci neviem či práve toto by mohla byť príčina. Mám v projekte aj iné statické triedy napríklad Settings alebo Speak a tie mi pomocník priamo v xamli ponúka. Paradoxne iba túto jednu Strings triedu nie. Tušil by niekto prečo?

 
Odpovědět
5.11.2020 14:41
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Bugmaster
Člen
Avatar
Bugmaster:6.11.2020 17:53

Jestli si spravne vzpominam, tak by melo fungovat tohle:

<MenuItem Header="{x:Static local:Strings+Menu.Otvorit}"/>
 
Nahoru Odpovědět
6.11.2020 17:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.