Экспорт (0) Печать
Развернуть все

DependencyObject.SetValue - метод (DependencyProperty, Object)

Обновлен: Ноябрь 2007

Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства.

Пространство имен:  System.Windows
Сборка:  WindowsBase (в WindowsBase.dll)

public void SetValue(
	DependencyProperty dp,
	Object value
)
public void SetValue(
	DependencyProperty dp,
	Object value
)
public function SetValue(
	dp : DependencyProperty, 
	value : Object
)
Нельзя использовать методы в языке XAML.

Параметры

dp
Тип: System.Windows.DependencyProperty
Идентификатор задаваемого свойства зависимостей.
value
Тип: System.Object
Новое локальное значение.

ИсключениеУсловие
InvalidOperationException

Попытка изменить доступное только для чтения свойство зависимостей, или свойство в запечатанном DependencyObject.

ArgumentException

value не был корректным типом, зарегистрированным для свойства dp.

Если указанный тип не соответствует типу, объявленному для свойства зависимостей при изначальной регистрации, происходит исключение. Параметр value следует всегда сообщать в качестве соответствующего типа.

На условия выражения потенциально влияет обратный вызов ValidateValueCallback, существующий при установке идентификатора для свойства зависимостей. В противном случае указанное значение может не соответствовать общим условиям проверки типов (например, передача строки, когда собственный тип — Double).

В этом примере показано, как обеспечить поддержку свойства среда CLR (common language runtime) с использованием поля DependencyProperty, определяя тем самым свойство зависимостей. Если вы определяете собственные свойства и хотите, чтобы они поддерживали множество аспектов функциональности Windows Presentation Foundation (WPF), включая стили, привязку данных, наследование, анимацию и значения по умолчанию, следует реализовать их как свойство зависимостей.

В следующем примере сначала регистрируется свойство зависимостей путем вызова метода Register. Поле идентификатора, используемое для хранения имени и характеристик свойства зависимостей, должно иметь имя Name, которое выбирается для свойства зависимостей в составе вызова Register с добавлением строкового литерала Property. Например, если регистрируется свойство зависимостей с именем Name для поля Location, то поле идентификатора, определяемое для свойства зависимостей, должно называться LocationProperty.

В этом примере для свойства зависимостей и его метода доступа CLR используется имя State; поле идентификатора называется StateProperty; тип свойства — Boolean; тип, регистрирующий свойство зависимостей — MyStateControl.

Если не следовать этому шаблону именования, конструкторы могут неправильно обработать свойство, и определенные аспекты приложения стиля системы свойств могут работать не так, как ожидалось.

Для свойства зависимостей можно также указать используемые по умолчанию метаданные. В этом примере в качестве значения по умолчанию для свойства зависимостей State регистрируется значение false.

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}


Полный пример см. в разделе Пример пользовательских классов со свойствами зависимостей.

Дополнительные сведения о том, как и зачем реализовать свойство зависимостей в противоположность поддержке свойства CLR с использованием закрытого поля, см. в разделе Общие сведения о свойствах зависимости.

Windows Vista

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

.NET Framework

Поддерживается в версиях: 3.5, 3.0

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft