“ {Binding Path =.}” หมายความว่าอย่างไรในการเชื่อม WPF


92

ความ{Binding Path=.}หมายในการผูก WPF คืออะไร?

ฉันเห็นบางคนใช้ แต่ไม่พบคำอธิบายใด ๆ

มีสัญลักษณ์พิเศษอื่น ๆ ในไวยากรณ์การผูก (นอกเหนือจาก{Binding /}) หรือไม่?

คำตอบ:


60

นี่คือชวเลขสำหรับผูกกับแหล่งที่มาปัจจุบัน สำหรับข้อมูลเพิ่มเติมโปรดดูที่นี่

จากเอกสารเฉพาะ:

สามารถใช้เส้นทางจุด (.) เพื่อผูกกับแหล่งที่มาปัจจุบันได้ ยกตัวอย่างเช่นเทียบเท่ากับText="{Binding}"Text="{Binding Path=.}"


1
@Ray - ความคิดของฉันเป๊ะ ถ้าคุณจะจดชวเลขทำไมต้องหยุดที่นั่น?
micahtan

5
ฉันไม่สามารถโต้เถียงกับ MSDN ได้ แต่ก็ยังมีความแตกต่าง ไม่สามารถใช้ {Binding} กับอ็อบเจ็กต์เองได้ (เนื่องจากต้องใช้คุณสมบัติสองทาง) ในขณะที่ {Binding Path =.}
Sergey Aldoukhov

@Sergey - คุณมีตัวอย่างโค้ดที่ {Binding} ใช้ไม่ได้ แต่มี {Binding Path =.} ไหม ถ้าเป็นเช่นนั้น MSDN อาจต้องได้รับการปรับปรุง ...
micahtan

ได้อย่างง่ายดาย: var s = "test; DataContext = s; และใน <TextBox Text = {Binding} /> - ไม่ทำงาน แต่ MSDN ไม่ใช่ wiki ...
Sergey Aldoukhov

8
ตัวอย่างอื่น: <TextBlock Text = "{Binding Converter = ... }" /> ไม่ทำงานเนื่องจากคุณต้องตั้งค่าเส้นทาง ในกรณีนั้น Path =. มีประโยชน์
Nicolas

69

ฉันพบWPF Binding CheatSheetเมื่อไม่กี่เดือนก่อนและพบว่ามีประโยชน์มากโดยเฉพาะสำหรับทุกคนที่เรียนรู้ WPF มีการสะกดผิดอยู่บ้าง แต่ก็ยังค่อนข้างดี

นี่คือข้อความที่ตัดตอนมาเล็กน้อย (ซึ่งควรจะมีการจัดรูปแบบตาราง):

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


2
เป็นสิ่งที่ดี แต่ {Binding.} คืออะไร ฉันกำลังค้นหาคำอธิบายสำหรับสิ่งนี้ แต่หาไม่เจอ?
Emil

@batmaci ฉันอยากจะบอกว่ามันเทียบเท่ากับ{Binding }แต่มันเป็นเวลาไม่กี่ปีแล้วที่ฉันได้ทำงานกับ Xaml มากมายดังนั้นฉันจึงไม่แน่ใจ
Ryan Versaw

@batmaci ปีต่อมา ... {Binding string}คล้ายกับ{Binding Path=string}. stringไม่ได้ใช้เพื่อเตรียมใช้งานคุณสมบัติPathโดยตรง แต่เป็นพารามิเตอร์สำหรับตัวสร้างBinding (string path)ซึ่งจะเริ่มต้นPathคุณสมบัติ สิ่งนี้ใช้ได้เฉพาะเมื่อสตริงเป็นโทเค็นแรกตามหลังBindingส่วนที่เหลือเป็นตัวเริ่มต้นปกติ (คู่คุณสมบัติ = ค่า) รู้ว่าBinding .มีผลเท่ากับBinding Path=.และไวยากรณ์เส้นทางคุณสมบัติสามารถใช้ได้ที่นี่
นาที
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.