FrameworkElement.SetBinding(DependencyProperty, BindingBase) 方法

定義

使用提供的系結物件,將系結附加至 FrameworkElement

void SetBinding(DependencyProperty const& dp, BindingBase const& binding);
public void SetBinding(DependencyProperty dp, BindingBase binding);
function setBinding(dp, binding)
Public Sub SetBinding (dp As DependencyProperty, binding As BindingBase)

參數

dp
DependencyProperty

系結之屬性的相依性屬性識別碼。

binding
BindingBase

要用於 屬性的系結。

範例

這個範例會藉由呼叫 SetBinding,建立物件上相依性屬性的系結。

// 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 
Dim s As String = "Hello"

'Create the binding description 
Dim b As New Binding()
b.Mode = BindingMode.OneTime
b.Source = s

'Attach the binding to the target 
Dim MyText As New TextBlock()
MyText.SetBinding(TextBlock.TextProperty, b)

備註

此方法是一種方便的方法,可呼叫 BindingOperations.SetBinding,並將目前的實例傳遞為 目標 參數。

參數的類型是BindingBase,基於相容性考慮,但在Windows 執行階段中,您一律會傳遞Binding實例。 系結 衍生自 BindingBase

dp參數會採用相依性屬性識別碼。 如需相依性屬性的詳細資訊,以及 DependencyProperty 值如何作為識別碼,請參閱 相依性屬性概觀

您可以系結至自訂相依性屬性或自訂附加屬性,您傳遞為dp參數的識別碼不一定是Windows 執行階段定義的屬性。

從程式碼建立的系結是否能夠使用作用中的資料內容,取決於物件存留期考慮。 例如,在剖析 XAML 之前,將無法使用從 XAML 設定的 DataCoNtext 值。 在此情況下,您可能想要使用 Loaded 處理常式從程式碼新增系結。

注意

呼叫 SetBinding 方法並傳入新的 Binding 物件不一定會移除現有的系結。 相反地,您應該先呼叫 DependencyObject.ClearValue 方法,然後呼叫 SetBinding。

系結至附加屬性

您可以將資料系結放在目標物件支援的任何附加屬性上。 技術上, DependencyObject 支援所有可能的附加屬性,但您通常只會在與該物件或案例相關的附加屬性上設定系結。 例如,只有在您預期目標元素具有將使用該資訊的Grid父系時,才會在Grid.Row上設定系結。 針對Grid.Row範例,將dp參數指定為附加屬性的擁有者類別 (上的相依性屬性識別碼,該識別碼為Grid.RowProperty) 。 您找不到目標上的識別碼,因為它是附加屬性。 如需附加屬性的詳細資訊,請參閱 附加屬性概觀

適用於

另請參閱