2011-12-02 59 views
6

在這個例子中:綁定關鍵字是指什麼?

<TextBox Name="textBox1" Height="23" Text="some text" HorizontalAlignment="Left" Margin="69,12,0,0" VerticalAlignment="Top" Width="120" /> 
<Label Content="{Binding Path=Text, ElementName=textBox1}" Height="28" HorizontalAlignment="Left" Margin="235,12,0,0" Name="label1" VerticalAlignment="Top" /> 

無論我在文本框中鍵入將在標籤上顯示。我正在學習xaml,並且我相信我理解了大多數Bindings,比如這個。但我認爲即使我明白髮生了什麼,理解Binding關鍵字所指的是什麼會很好?例如我可以有:

<ListView ItemsSource="{Binding}" Name="lv1" /> 

我很難理解綁定實際上是指什麼? Binding關鍵字後沒有任何內容,那麼它綁定了什麼?它是否涉及該控制?它是否類似於c#中使用的this關鍵字,它將引用類的當前實例化對象?

回答

4

這不是關鍵字,它是markup extension

綁定總是結合Path相對於源,如果存在,他們直接綁定到源的路徑,可能的來源是如果沒有指定其他源被隱含地使用的DataContextElementNameSourceRelativeSource。如果你還沒有這樣做,請閱讀the overview

1

這是窗口的屬性DataContext的綁定。如果 中有元素列表,您將在列表框中看到它。

例如在InitializeComponents();之後在窗口的構造函數中輸入DataContext = new List<string> { "A", "B", "C" };,您將在列表框中看到該列表。

+0

是的,我相信我知道它是如何工作的。我實際上將它綁定到linq查詢。因此,當沒有指定任何內容(您只有{binding}關鍵字)時,它指向窗口的數據上下文?如果有一個指定的屬性和一個目標,它將綁定到該目標或任何指定的目標? –

+1

@TonoNam:你說得對。 – Fischermaen