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

Я новичок в WPF, и это мой первый пост. Я создал класс под названием "Фрукты", который сходит с "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

Ответы

Ответ 1

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

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"));

Ответ 2

вам нужно использовать свойство MetaData, подобное этому

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));

}