WPF bağlamada “{Binding Path =.}” Ne anlama geliyor?


91

{Binding Path=.}WPF bağlamasında ne anlama geliyor?

Bazılarının bunu kullandığını görüyorum, ancak herhangi bir açıklama bulamadım.

Bağlama sözdiziminde (dışında {Binding /}) başka özel semboller var mı?

Yanıtlar:


60

Bu, mevcut kaynağa bağlanmanın kısaltmasıdır. Daha fazla bilgi için buraya bakın .

Belgelerden özellikle:

İsteğe bağlı olarak, geçerli kaynağa bağlanmak için bir nokta (.) Yolu kullanılabilir. Örneğin Text="{Binding}", eşdeğerdir Text="{Binding Path=.}".


1
@Ray - tam olarak düşüncelerim. Steno kullanacaksan neden orada dursun?
micahtan

5
MSDN ile tartışamam ama yine de bir fark var. {Binding}, {Binding Path =.} Çalışırken bir nesnenin kendisinde kullanılamaz (iki şekilde bir özellik gerektirir).
Sergey Aldoukhov

@Sergey - {Binding} 'nin çalışmadığı ancak {Binding Path =.}' Nin çalıştığı bir kod örneğiniz var mı? Öyleyse,
MSDN'nin

Kolayca: var s = "test; DataContext = s; ve <TextBox Text = {Binding} /> içinde - çalışmıyor. Ancak MSDN wiki değil ...
Sergey Aldoukhov

8
Başka bir örnek: <TextBlock Text = "{Binding Converter = ...}" />, Yolu ayarlamanız gerektiğinden çalışmaz. Bu durumda Yol =. kullanışlı.
Nicolas

69

Bu WPF Binding CheatSheet'i birkaç ay önce buldum ve özellikle WPF'yi öğrenen herkes için çok faydalı buldum. İçinde bazı yazım hataları var ama yine de oldukça iyi.

İşte küçük bir alıntı (tablo biçimlendirmesi olması gereken):

Basic Binding   
{Binding}  Bind to current DataContext. 
{Binding Name}  Bind to the “Name” proeprty of the current DataContext. 
{Bindind Name.Length}  Bind to the Length property of the object in the Name property of the current DataContext. 
{Binding ElementName=SomeTextBox, Path=Text}  Bind to the “Text” property of the element XAML element with name=”SomeTextBox” or x:Name=”SomeTextBox”. 

CheatSheet'e doğrudan bağlantı


2
güzel bir tane ama ne {Binding.}. Bunun için bir açıklama arıyorum ama bulamıyorum?
Emil

@batmaci Eşdeğeri olduğunu söylemek istiyorum {Binding }, ancak Xaml ile çok çalışmayalı birkaç yıl oldu, bu yüzden emin değilim.
Ryan Versaw

@batmaci, yıllar sonra ... {Binding string}benzer {Binding Path=string}. stringözelliği Pathdoğrudan başlatmak için değil, Binding (string path)daha sonra Pathözelliği başlatan yapıcı için bir parametre olarak kullanılır . Bu yalnızca dizge sonraki ilk simge olduğunda çalışır Binding, geri kalanı normal başlatıcılardır (özellik = değer çiftleri). Bunun Binding .gerçekte eşit olduğunu bilmek Binding Path=.ve özellik Yol sözdizimi burada mevcuttur .
dakika
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.