DependencyObject.GetLocalValueEnumerator Metoda

Definicja

Tworzy wyspecjalizowany moduł wyliczający służący do określania, które właściwości zależności mają lokalnie ustawione wartości na tej 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

Zwraca

Wyspecjalizowany moduł wyliczający wartość lokalną.A specialized local value enumerator.

Przykłady

Poniższy przykład wykonuje iterację wszystkich właściwości, które mają wartości lokalne ustawione dla obiektu, a następnie wywołuje ClearValue, aby wyczyścić wartości każdej takiej właściwości.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

Uwagi

Wartość lokalna to każda wartość właściwości zależności, która została ustawiona przez SetValue, w przeciwieństwie do innych aspektów systemu właściwości.A local value is any dependency property value that was set by SetValue, as opposed to other aspects of the property system.

LocalValueEnumerator uzyskiwany przez wywoływanie GetLocalValueEnumerator może służyć do wyliczania właściwości, które mają lokalnie ustawioną wartość w wystąpieniu DependencyObject.The LocalValueEnumerator obtained by calling GetLocalValueEnumerator can be used to enumerate properties that have a locally set value on a DependencyObject instance. Każda taka właściwość jest reprezentowana w module wyliczającym przez obiekt LocalValueEntry, który ma właściwości odwołujące się do określonego DependencyProperty i jego wartości.Each such property is represented in the enumerator by a LocalValueEntry object, which has properties that reference the specific DependencyProperty and its values. Ta technika wyliczania za pośrednictwem wartości zestawu lokalnego może być używana do optymalizacji lub do innej obsługi wartości lokalnych, na przykład w celu określenia, które wartości właściwości DependencyObject mogą ulec zmianie, jeśli zostały wyczyszczone.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.

Ważne

Zwrócone LocalValueEnumerator mogą zawierać LocalValueEntry rekordy dla właściwości zależności, które są tylko do odczytu lub właściwości zależności, gdzie wartości są obliczane przez system właściwości.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. Na przykład element Visual Framework, który ma ustaloną szerokość przez układ, będzie raportować wartość lokalną dla ActualWidth.For example, a visual framework element that has an established width through layout will report a local value for ActualWidth. Jeśli otrzymujesz wartości lokalne, aby je zresetować, sprawdź wartość ReadOnly w identyfikatorze właściwości każdej LocalValueEntry, aby sprawdzić, czy dana DependencyProperty nie jest tylko do odczytu.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.

Dotyczy

Zobacz też