Как установить значение по умолчанию для свойства зависимости типа, полученного из объекта зависимости - PullRequest
18 голосов
/ 18 июля 2011

Я новичок в WPF, и это мой первый пост.Я создал класс под названием «Fruit», который происходит от «DependencyObject» и добавляет дополнительное свойство под названием «Apple».Я создал новый пользовательский элемент управления, который включает свойство зависимости, называемое «MyFruit», типа «Fruit».У меня вопрос, как я могу установить значение по умолчанию для свойств в объекте «MyFruit» (т.е. свойство «Apple»? Я хотел бы установить это в XAML, используя объект.

public class Gauge : Control
{
    .
    .
    .

    //---------------------------------------------------------------------
    #region MyFruit Dependency Property

    public Fruit MyFruit
    {
        get { return (Fruit)GetValue(MyFruitProperty); }
        set { SetValue(MyFruitProperty, value); }
    }

    public static readonly DependencyProperty MyFruitProperty =
        DependencyProperty.Register("MyFruit", typeof(Fruit), typeof(CircularGauge), null);

    #endregion


} 


//-------------------------------------------------------------------------
#region Fruit class

public class Fruit : DependencyObject
{
    private int apple;

    public int Apple
    {
        get { return apple; }
        set { apple = value; }
    }

 }

#endregion

Ответы [ 2 ]

26 голосов
/ 18 июля 2011

Вместо нуля в свойстве метаданных свойства зависимости вставьте

new UIPropertyMetadata("YOUR DEFAULT VALUE GOES HERE")

Так что теперь оно становится

public static readonly DependencyProperty MyFruitProperty =
    DependencyProperty.Register("MyFruit", typeof(Fruit), typeof(CircularGauge), new UIPropertyMetadata("YOUR DEFAULT VALUE GOES HERE"));
5 голосов
/ 24 июня 2014

вам нужно использовать свойство метаданных вот так

class MyValidation
{ 

    public bool status
        {
            get { return (bool)GetValue(statusProperty); }
            set { SetValue(statusProperty, value); }
        }

        public static readonly DependencyProperty statusProperty =
            DependencyProperty.Register("status", typeof(bool), typeof(MyValidation),new PropertyMetadata(false));

}

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