DependencyObject.GetLocalValueEnumerator メソッド

定義

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

C#
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator ();

戻り値

LocalValueEnumerator

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

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

C#
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); }
        }
    }
}

注釈

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

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

重要

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

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

こちらもご覧ください