TOC

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所有綁定可能性的簡述。在接下來的章節中,我們將探索更多內容,向您展示數據綁定的強大功能。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!