DependencyObject.GetLocalValueEnumerator 메서드

정의

DependencyObject에 대해 로컬로 값을 설정한 종속성 속성을 확인하기 위한 특수 열거자를 만듭니다.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

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

반환

특수 로컬 값 열거자입니다.A specialized local value enumerator.

예제

다음 예제에서는 개체에 대해 설정 된 로컬 값이 있는 모든 속성을 반복한 다음 ClearValue를 호출 하 여 각 속성의 값을 지웁니다.The following example iterates all properties that have local values set on an object, then calls ClearValue to clear the values of each such property.

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에 의해 설정 된 종속성 속성 값입니다.A local value is any dependency property value that was set by SetValue, as opposed to other aspects of the property system.

GetLocalValueEnumerator를 호출 하 여 가져온 LocalValueEnumerator를 사용 하 여 DependencyObject 인스턴스에서 로컬로 설정 된 값이 있는 속성을 열거할 수 있습니다.The LocalValueEnumerator obtained by calling GetLocalValueEnumerator can be used to enumerate properties that have a locally set value on a DependencyObject instance. 이러한 각 속성은 특정 DependencyProperty 및 해당 값을 참조 하는 속성을 포함 하는 LocalValueEntry 개체로 열거자에 표시 됩니다.Each such property is represented in the enumerator by a LocalValueEntry object, which has properties that reference the specific DependencyProperty and its values. 로컬에서 설정 된 값을 열거 하는 이러한 기술을 최적화에 사용 하거나 다른 로컬 값을 처리 하는 데 사용할 수 있습니다. 예를 들어 DependencyObject의 속성 값이 지워진 경우 변경 될 수 있습니다.This technique of enumerating over the locally set values can be used for optimization or for other handling of local values, such as to determine which property values of a DependencyObject would change if they were cleared.

중요

반환 된 LocalValueEnumerator는 읽기 전용 종속성 속성 또는 속성 시스템에서 값을 계산 하는 종속성 속성에 대 한 LocalValueEntry 레코드를 포함할 수 있습니다.The returned LocalValueEnumerator might contain LocalValueEntry records for dependency properties that are read-only, or dependency properties where values are calculated by the property system. 예를 들어 레이아웃을 통해 너비가 설정 된 visual framework 요소는 ActualWidth에 대 한 로컬 값을 보고 합니다.For example, a visual framework element that has an established width through layout will report a local value for ActualWidth. 로컬 값을 다시 설정 하기 위해 로컬 값을 가져오는 경우 각 LocalValueEntry의 속성 식별자에 대 한 ReadOnly 값을 확인 하 여 해당 DependencyProperty 읽기 전용이 아닌지 확인 합니다.If you are getting local values in order to reset them, check the ReadOnly value on the property identifier of each LocalValueEntry to verify that the DependencyProperty in question is not read-only.

적용 대상

추가 정보