2009-02-03 11 views

Odpowiedz

55

Jest to sposób wstawiania dowolnej wartości statycznej do XAML. Na przykład, jeśli mam klasy:

namespace A 
{ 
    public class MyConstants 
    { 
     public static readonly string SomeConstantString = "BAM!"; 
    } 
} 

mogę umieścić go w WPF UI przy użyciu XAML jak poniżej:

<TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" /> 

zawiadomieniu, trzeba będzie zaimportować przestrzeń nazw, w której MyConstants jest zdefiniowana do twojego XAML. Tak więc w elemencie lub coś takiego:

xmlns:A="clr-namespace:A" 
+2

Niestety to nie działa w Silverlight: http://stackoverflow.com/questions/3373926/silverlight-4-equivalent-to-wpf-xstatic –

0

znalazłem pytanie XAML - Accessing static fields mającą odpowiedź, która łączy w dokumentacji MSDN x:Static Markup Extension. Pomyślałem, że nadal będzie to przydatne na stronie.

+0

Tak, ale proste wyszukiwanie google "x: Static xaml" też je znajdzie! –

+0

W tym czasie myślałem, że "wyszukaj StackOverflow", a nie "wyszukuj w Google", a ponieważ dostałem odpowiedź i chciałem wrócić do kodowania, nie zawracałem sobie głowy wykonaniem odsyłacza do Google. Miałem kod i zadziałało - byłem ciekawy, co to znaczy. –

+1

To przywołuje dobry punkt. Zastanawiam się, czy masa krytyczna zostanie osiągnięta, gdy stackoverflow staje się pierwszym punktem połączenia, a nie google dla większości programistów. –

6

Od MSDN: http://msdn.microsoft.com/en-us/library/ms742135.aspx

Referencje dowolny statyczny podmiot przez wartość kodu zdefiniowane we wspólnym języku Specification (CLS) sposób zgodny Obiekt określany jest oceniany przed załadowaniem reszty strony XAML i mogą być wykorzystane do podać wartość właściwości w XAML.