DependencyObject.GetLocalValueEnumerator メソッド

定義

どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。

public:
 System::Windows::LocalValueEnumerator GetLocalValueEnumerator();
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator ();
member this.GetLocalValueEnumerator : unit -> System.Windows.LocalValueEnumerator
Public Function GetLocalValueEnumerator () As LocalValueEnumerator

戻り値

LocalValueEnumerator

専用のローカル値列挙子。

次の例では、オブジェクトにローカル値が設定されているすべてのプロパティを反復処理し、呼び出 ClearValue してそのような各プロパティの値をクリアします。

void RestoreDefaultProperties(object sender, RoutedEventArgs e)
{
    UIElementCollection uic = Sandbox.Children;
    foreach (Shape uie in uic)
    {
        LocalValueEnumerator locallySetProperties = uie.GetLocalValueEnumerator();
        while (locallySetProperties.MoveNext())
        {
            DependencyProperty propertyToClear = locallySetProperties.Current.Property;
            if (!propertyToClear.ReadOnly) { uie.ClearValue(propertyToClear); }
        }
    }
}
Private Sub RestoreDefaultProperties(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim uic As UIElementCollection = Sandbox.Children
    For Each uie As Shape In uic
        Dim locallySetProperties As LocalValueEnumerator = uie.GetLocalValueEnumerator()
        While locallySetProperties.MoveNext()
            Dim propertyToClear As DependencyProperty = locallySetProperties.Current.Property
            If Not propertyToClear.ReadOnly Then
                uie.ClearValue(propertyToClear)
            End If
        End While
    Next
End Sub

注釈

ローカル値 は、プロパティ システムの他の側面とは対照的に、設定SetValueされた依存関係プロパティ値です。

LocalValueEnumerator呼び出しGetLocalValueEnumeratorによって取得されたプロパティは、インスタンスに対してローカルに設定された値を持つプロパティをDependencyObject列挙するために使用できます。 このような各プロパティは、特定の値を参照DependencyPropertyするプロパティをLocalValueEntry持つオブジェクトによって列挙子で表されます。 ローカルに設定された値を列挙するこの手法は、最適化やその他のローカル値の処理 (クリアされた場合に変更される a DependencyObject のプロパティ値を決定するなど) に使用できます。

重要

返される LocalValueEnumerator プロパティには、読み取り専用の依存関係プロパティのレコードや、プロパティ システムによって値が計算される依存関係プロパティが含まれる LocalValueEntry 場合があります。 たとえば、レイアウトの幅が確立されているビジュアル フレームワーク要素は、ローカル値を報告します ActualWidth。 ローカル値をリセットするために取得する場合は、それぞれのLocalValueEntryプロパティ識別子の値を調ReadOnlyべて、該当する値が読み取り専用ではないことをDependencyProperty確認します。

適用対象

こちらもご覧ください