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
Возвращаемое значение
Специализированный перечислитель локальных значений.
Примеры
В следующем примере выполняется итерация всех свойств, имеющих локальные значения, заданные для объекта, а затем вызывается 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 . Каждое такое свойство представлено в перечислителе LocalValueEntry объектом, который содержит свойства, ссылающиеся на конкретные DependencyProperty и его значения. Этот метод перечисления локально заданных значений можно использовать для оптимизации или для другой обработки локальных значений, например для определения значений свойств, DependencyObject изменяющихся при их очистке.
Важно!
Возвращаемые LocalValueEnumerator могут содержать LocalValueEntry записи для свойств зависимостей, доступных только для чтения, или свойств зависимостей, где значения вычисляются системой свойств. Например, элемент визуальной платформы, имеющий установленную ширину с помощью макета, будет сообщать локальное значение для ActualWidth. Если вы получаете локальные значения для их сброса, проверьте ReadOnly значение идентификатора свойства каждого из них LocalValueEntry , чтобы убедиться, что DependencyProperty вопрос не доступен только для чтения.