Szukaj…


Składnia

  • <object property = "{x: Bind}" ... />

  • <object property = "{x: Bind propertyPath}" ... />

  • <object property = "{x: Bind Path = propertyPath}" ... />

  • <object property = "{x: Bind [bindingProperties]}" ... />

  • <object property = "{x: Bind propertyPath, [bindingProperties]}" ... />

  • <object property = "{x: Bind Path = propertyPath, [bindingProperties]}" ... />

Uwagi

Rozszerzenie znaczników {x:Bind} - nowe w systemie Windows 10 - jest alternatywą dla {Binding} .

{x:Bind} nie ma niektórych funkcji {Binding} , ale działa krócej i zajmuje mniej pamięci niż {Binding} i obsługuje lepsze debugowanie.

W czasie ładowania XAML {x:Bind} jest konwertowany na coś, co można traktować jako obiekt wiążący, a ten obiekt otrzymuje wartość z właściwości w źródle danych. Obiekt powiązania można opcjonalnie skonfigurować w taki sposób, aby obserwował zmiany wartości właściwości źródła danych i odświeżał się na podstawie tych zmian. Opcjonalnie można go również skonfigurować do przekazywania zmian własnej wartości z powrotem do właściwości source. Obiekty wiązania utworzone przez {x:Bind} i {Binding} są w dużej mierze funkcjonalnie równoważne. Ale {x:Bind} wykonuje kod specjalnego przeznaczenia, który generuje w czasie kompilacji, a {Binding} korzysta z ogólnego obiektu kontroli środowiska wykonawczego. W związku z tym powiązania {x:Bind} (często nazywane powiązaniami skompilowanymi) mają doskonałą wydajność, zapewniają sprawdzanie poprawności wyrażeń powiązań w czasie kompilacji i wspierają debugowanie, umożliwiając ustawianie punktów przerwania w plikach kodu generowanych jako częściowe klasa dla twojej strony. Pliki te można znaleźć w folderze obj, o nazwach takich jak (dla C #) .g.cs.

Aby uzyskać więcej informacji, zobacz dokumentację MSDN na temat x: Bind

Ocena {x: Bind} na podstawie funkcji

Ta umiejętność została dodana do rozszerzenia znaczników Bind po wersji v1607 (Redstone 1).
Możesz określić ścieżkę funkcji, a także ścieżki arg i stałe argumenty. Załóżmy, że mamy funkcję zdefiniowaną w naszym kodzie zwrotnym:

public string Translate(string text, string from, string to)

Teraz możemy użyć bind do oceny funkcji w pożądanym elemencie:

<TextBlock Name="SomeText" Text="How are you?" />
<TextBlock Name="{x:Bind Translate(SomeText.Text, 'en', 'es')}" />

Ścieżki funkcji i arg mogą również zawierać kropki i rzutowania.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow