語言

Binding.UpdateSourceTrigger 屬性

定義

取得或設定一個值,決定雙向綁定的原始碼更新時機。

public:
 property UpdateSourceTrigger UpdateSourceTrigger { UpdateSourceTrigger get(); void set(UpdateSourceTrigger value); };
UpdateSourceTrigger UpdateSourceTrigger();

void UpdateSourceTrigger(UpdateSourceTrigger value);
public UpdateSourceTrigger UpdateSourceTrigger { get; set; }
var updateSourceTrigger = binding.updateSourceTrigger;
binding.updateSourceTrigger = updateSourceTrigger;
Public Property UpdateSourceTrigger As UpdateSourceTrigger
<Binding UpdateSourceTrigger="updateSourceTriggerMemberName"/>

屬性值

其中一個 UpdateSourceTrigger 的值。 預設值為 Default,對大多數相依屬性評估為PropertyChanged更新行為,但對屬性TextBox.Text則為 。LostFocus

備註

大多數相依屬性的預設行為是 PropertyChanged。 然而, TextBox.Text 屬性的預設行為為 LostFocus。 對於綁定到 TextBox.Text,你可以這樣更改:UpdateSourceTrigger

<TextBox Text="{x:Bind MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

不過,它對另一個控制項的控制模板(例如 NumberBox)不會有任何影響TextBox。 例如,這個 UpdateSourceTrigger 設定沒有效果。

<!-- This UpdateSourceTrigger setting has no effect. -->
<NumberBox Text="{x:Bind MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

你另一個選擇 UpdateSourceTrigger 行為是將 值設為 Explicit。 當雙向綁定的 UpdateSourceTrigger 值為 Explicit時,必須明確呼叫相關的 BindingExpression 上的 UpdateSource,才能讓變更的目標值更新資料來源。 使用 FrameworkElement.GetBindingExpression 從存在依賴性屬性綁定的物件取得 BindingExpression,該綁定是雙向綁定。UpdateSourceTrigger="Explicit"

在綁定物件綁定到目標元素和目標屬性後,你無法設定 該物件的 屬性值。 如果你嘗試這樣做,會遇到執行時例外。

適用於

另請參閱