如何为从dependencyobject派生的类型的依赖项属性设置默认值

时间:2011-07-18 07:02:24

标签: c# wpf xaml

我是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 个答案:

答案 0 :(得分:26)

而不是依赖项属性元数据中的null插入

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

答案 1 :(得分:5)

你需要像这样使用Property 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));

}