Binding 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義系結,此系結會連接系結目標和資料來源的屬性。
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Binding : BindingBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
- 繼承
- 屬性
範例
下列程式碼範例示範如何在 XAML 中建立系結。 如需完整的程式代碼清單,請參閱 XAML 資料系結範例。
<StackPanel Margin="5">
<TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBox Text="{Binding Path=Name, Mode=TwoWay}"
Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<!-- You can omit the 'Path=' portion of the binding expression. -->
<TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</StackPanel>
下列範例程式碼示範如何在程式碼中建立系結。
// Create the source string.
string s = "Hello";
// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;
// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");
// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;
// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);
備註
{Binding} 標記延伸可讓您在 XAML 中將 Binding 值指定為單一屬性字串,包括設定 Binding 屬性,例如Path和Source。 如需資料系結概念的詳細資訊,請參閱 深入資料系結。
Binding 類別可能會被視為 {Binding} 標記延伸的程式碼後置曝光。 如果系結已套用至目標 (在 XAML 載入) 時發生,則您無法設定 Binding 物件的讀寫屬性,以變更系結在執行時間的行為。 任何 XAML 定義的系結都應該視為不可變。 但是,您可以建立新的 Binding 物件、設定其屬性,以及使用 FrameworkElement.SetBinding在特定 UI 元素目標上建立新的系結。 如需詳細資訊,請參閱 在程式碼中建立系結。
Binding 物件會將 FrameworkElement 的相依性屬性直接連接到資料物件,讓資料物件的更新會自動傳播至使用資料系結的屬性。 Binding 類別會定義系結的屬性。 每個系結都必須有目標專案、目標屬性和資料來源,但如果您未指定這些值,則預設會提供一些值。
若要系結至資料物件上的屬性或子屬性,請設定 Binding 物件的 Path 屬性。 如需如何在程式碼或 XAML 中設定 Path 的詳細資訊,請參閱 屬性路徑語法 或 {Binding} 標記延伸。
您可以將 Binding 類別的實例套用至多個目標。 不過,當您將 Binding 物件的屬性值附加至目標元素之後,就無法修改它。
注意
呼叫 FrameworkElement.SetBinding 方法並傳入新的 Binding 物件不一定會移除現有的系結。 您應該改用 DependencyObject.ClearValue(DependencyProperty) 方法。
如需可接受 Binding 之屬性之 XAML 屬性使用方式的詳細資訊,或可以設定為數據系結值的詳細資訊,請參閱 {Binding} 標記延伸。
做為資料繫結目標的屬性必須是相依性屬性。 如需詳細資訊,請參閱相依性屬性概觀。
建構函式
Binding() |
初始化 Binding 類別的新實例。 |
屬性
Converter |
取得或設定系結引擎呼叫的轉換子物件,以修改在來源與目標之間傳遞的資料,反之亦然。 |
ConverterLanguage |
取得或設定值,這個值會命名要傳遞至 Converter 屬性所指定之任何轉換器的語言。 |
ConverterParameter |
取得或設定可用於 Converter 邏輯的參數。 |
Dispatcher |
一律會在Windows 應用程式 SDK應用程式中傳 |
DispatcherQueue |
|
ElementName |
取得或設定要當做 Binding之系結來源的專案名稱。 |
FallbackValue |
取得或設定當繫結無法傳回值時要用的值。 |
Mode |
取得或設定值,這個值表示繫結中資料流程的方向。 |
Path |
取得或設定繫結程序來源屬性的路徑。 |
RelativeSource |
透過指定繫結來源對繫結目標的相對位置,取得或設定繫結來源。 這最常用於 XAML 控制項範本內的繫結中。 |
Source |
取得或設定系結的資料來源。 |
TargetNullValue |
取得或設定當來源值為 Null時,目標中使用的值。 |
UpdateSourceTrigger |
取得或設定值,這個值會決定雙向系結之系結來源更新的時間。 |
方法
ClearValue(DependencyProperty) |
清除相依性屬性的本機值。 (繼承來源 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。 (繼承來源 DependencyObject) |
GetValue(DependencyProperty) |
從 DependencyObject傳回相依性屬性的目前有效值。 (繼承來源 DependencyObject) |
ReadLocalValue(DependencyProperty) |
如果已設定本機值,則傳回相依性屬性的本機值。 (繼承來源 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
註冊通知函式,以接聽此DependencyObject實例上特定DependencyProperty的變更。 (繼承來源 DependencyObject) |
SetValue(DependencyProperty, Object) |
設定 DependencyObject上相依性屬性的本機值。 (繼承來源 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
取消先前透過呼叫 RegisterPropertyChangedCallback註冊的變更通知。 (繼承來源 DependencyObject) |
適用於
另請參閱
- <xref:Microsoft.UI.Xaml.Data.BindingOperations.SetBinding(Microsoft.UI.Xaml.DependencyObject%2cMicrosoft.UI.Xaml.DependencyProperty%2cMicrosoft.UI.Xaml.Data.BindingBase)%0a(bindingoperations_setbinding_746099660.md)>
- XAML 資料系結範例
- 深入了解資料繫結
- 相依性屬性概觀
- Property-path 語法