FrameworkElement.DataContextChanged 事件

定義

發生于 FrameworkElement.DataCoNtext 屬性的值變更時。

// Register
event_token DataContextChanged(TypedEventHandler<FrameworkElement, DataContextChangedEventArgs const&> const& handler) const;

// Revoke with event_token
void DataContextChanged(event_token const* cookie) const;

// Revoke with event_revoker
FrameworkElement::DataContextChanged_revoker DataContextChanged(auto_revoke_t, TypedEventHandler<FrameworkElement, DataContextChangedEventArgs const&> const& handler) const;
public event TypedEventHandler<FrameworkElement,DataContextChangedEventArgs> DataContextChanged;
function onDataContextChanged(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("datacontextchanged", onDataContextChanged);
frameworkElement.removeEventListener("datacontextchanged", onDataContextChanged);
- or -
frameworkElement.ondatacontextchanged = onDataContextChanged;
Public Custom Event DataContextChanged As TypedEventHandler(Of FrameworkElement, DataContextChangedEventArgs) 
<frameworkElement DataContextChanged="eventhandler"/>

事件類型

備註

FrameworkElement.DataCoNtext屬性具有內建行為,其中其值會繼承至已設定DataCoNtext值之FrameworkElement 的所有 FrameworkElement子項目。 此行為可讓一組相關的元素使用相同的內容來系結至不同的來源屬性,這特別適用于專案範本、資料範本和其他資料系結案例。 因為 DataCoNtext 繼承,所以每個 FrameworkElement 都可能會使用繼承的值來引發另一個 DataContextChanged 從繼承專案來源的事件,而不是父元素,一旦專案偵測到其繼承 的 DataCoNtext 值已變更。 如果您不想要此行為,您應該處理 DataContextChanged 父來源上的事件,其中事件會先引發。 作為處理常式邏輯的一部分,請將DataCoNtextChangedEventArgs事件資料中的Handled屬性值設定為 true 。 該動作會防止事件路由傳送至子專案。

注意

DataContextChanged 具有路由行為,但不是真正的路由事件, (它沒有 RoutedEvent 識別碼) 。 此外,它會從父系路由傳送至子系,而真正的路由事件則會從子系路由傳送至父系。 如果您熟悉WINDOWS PRESENTATION FOUNDATION (WPF) , DataContextChanged 可能會由WINDOWS PRESENTATION FOUNDATION (WPF) 事件路由定義視為通道路由事件。

DataContextChanged 適用于控制項邏輯或其他程式碼型邏輯想要通知系結的資料內容已變更的案例,這通常表示資料系結值會變更。 這可以做為觸發程式來執行執行內容驅動變更的程式碼,然後現有系結可以使用新內容來重新計算值。 對於您不想在資料範本中預先存在的宣告系結,但需要變更通知的情況也很有用。 在此案例中,您可以處理 DataContextChanged 來偵測資料內容的變更,並在回應中直接變更程式碼中的其他屬性,就像 XAML 宣告的系結透過資料系結引擎動態執行一樣。 例如,您可能有一個自訂控制項,主要用於資料範本內,而且您希望控制項能夠在應用程式 UI XAML 或資料範本中執行系結作業,而不需要任何明確的 Binding 宣告。

適用於

另請參閱