2013-01-17 19 views
6

Ostatnio czytałem „Databinding przegląd” artykuł na MSDN i tam jest taki przykładowy kod:Co oznaczają nawiasy w ścieżkach wiążących?

<TextBox.ToolTip> 
    <Binding RelativeSource="{RelativeSource Self}" Path="(Validation.Errors)[0].ErrorContent"/> 
</TextBox.ToolTip> 

wiem, że {} oznacza rozszerzenia znaczników ale co średnią() nawiasy tutaj? Byłoby miło, gdyby ktoś udostępnił link do wyjaśnienia takiej składni. Dzięki!

Path="(Validation.Errors)[0].ErrorContent" 

Odpowiedz

3

(Validation.Errors) odwołuje załączony właściwość Errors w klasie Validation. Ponieważ wiązanie ma wartość RelativeSource = Self, będzie szukało wartości tej dołączonej właściwości w odniesieniu do samego TextBox.

4

Cytowanie MSDN library (cytuję MSDN tutaj, bo nie mógł napisać go lepiej):

Składnia ta jest powszechnie stosowany do jednej z następujących przypadków:

  • Ścieżka jest określona w XAML, która jest w stylu lub szablonie, który nie ma określonego TargetType. Kwalifikowane użycie jest generalnie nieważne w przypadkach innych niż ten, ponieważ w przypadkach nietypowych, bez szablonów właściwość istnieje na instancji, a nie na typie.
  • Ta nieruchomość jest załączoną własnością.
  • Powiązanie z właściwością statyczną.

Aby użyć jako scenorys docelowy, właściwość określona jako propertyName musi być określona jako DependencyProperty.