Erro de propriedade de dependência

Eu estou aprendendo propriedades de dependência. Eu li muitos posts e livros, mas ainda não estou claro.

O programa mostrado abaixo é o que eu escrevi para aprender. Algum erro nisso, por favor ajude na resolução. Eu tenho dúvidas.

O principal uso do elemento de propriedade de dependência personalizado é para a notificação de alteração?Eu encontrei um código 'IsDefaultProperty' paraBotão em um livro de texto do WPF. Isso significa 'IsDefault'propriedade é uma propriedade de dependência?Por que eles mostraram esse código? Isso significa, internamente, na classe Button, é definido assim? (Eles mostraram código interno?) Ou mostraram como definir como personalizados?

Aqui está o meu código:

<code>namespace DependencyProperties
{
    public class Contact
    {
        private int id=100;
        private string name="shri";
        public static readonly DependencyProperty IsPresentProperty;

        public int ID
        {
            get { return id; }
        }
        public string NAME
        {
            get { return name; }
        }

        static Contact()
        {
            IsPresentProperty = DependencyProperty.Register("IsPresent", typeof(bool),typeof(Contact),new FrameworkPropertyMetadata(false,new PropertyChangedCallback(OnIsPresentChanged)));
        }

        public bool Present
        {
            get { return (bool)GetValue(Contact.IsPresentProperty); }
            set { SetValue(Contact.IsPresentProperty, value); }
        }

        private static void OnIsPresentChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {  

        }
    }
}
</code>

E vejo o erro:

<code>> Error: GetValue and SetValue does not exist in the current context
</code>

questionAnswers(2)

yourAnswerToTheQuestion