This article has been localized into Chinese by the community.
你好-绑定世界
就像我们用经典的 "Hello, world!"例子开始这个教程一样,我们会用一个"Hello, bound world!" 的例子让你看到在WPF中使用数据绑定是多么的简单。让我们先直接看例子,后面我会再给你们解释。
<Window x:Class="WpfTutorialSamples.DataBinding.HelloBoundWorldSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="HelloBoundWorldSample" Height="110" Width="280">
<StackPanel Margin="10">
<TextBox Name="txtValue" />
<WrapPanel Margin="0,10">
<TextBlock Text="Value: " FontWeight="Bold" />
<TextBlock Text="{Binding Path=Text, ElementName=txtValue}" />
</WrapPanel>
</StackPanel>
</Window>
這個簡單的範例展示了我們如何挷定一個TextBlock的Value與TextBox的text屬性相匹配。如同你從截圖上看到的,當你在TextBox輸入文字,TextBlock會自動的更新。在沒有使用挷定方法的時候,要做到這個功能,我們必需要監聽TextBox的事件並且在每次輸入文字時更新TextBlock。但是有了資料挷定功能之後,這個連結透過使用標記就可以被建立了。
挷定所使用的語法
所有的魔法都發生在這括號中,它在XAML封裝的標記延伸(Markup Extension)中。 在資料挷定時,我們使用Binding這個延伸標記來描述與Text屬性綁定的關係,在最簡單的格式中,一個Binding可能長的像這樣:
{Binding}
這個描述簡單的回傳一個Data Context(稍後的內容會再提到)。這當然是有用的,但一般的情況下,你應該會試著把目標屬性綁定至另一個在Data Context裡的來源屬性。那麼這個綁定的宣告將會如下所示:
{Binding Path=NameOfProperty}
Path指出了你所想要綁定的屬性。由於Path本身是資料綁定的預設屬性,因此你也可以如下面的方式省略它:
{Binding NameOfProperty}
你將會看到許多不同的例子,有的會明確的定義Path屬性,而有的則會選擇省略它;這些完全取決於你的決定。
資料綁定還包含有許多其他的屬性,其中ElementName就出現在我們的例子中。它允許我們直接連結其他UI元素為資料的來源。我們透過逗號來區隔每一個屬性的設定:
{Binding Path=Text, ElementName=txtValue}
總結
這只是WPF所有綁定可能性的簡述。在接下來的章節中,我們將探索更多內容,向您展示數據綁定的強大功能。