使用依赖项属性设置自定义控件的成员属性

时间:2014-03-26 03:38:14

标签: c# wpf dependency-properties windows-8.1

我创建了一个自定义用户控件,它基本上由网格,图像和文本块构成。我希望能够从用户控件的属性设置图像的源和文本块的文本。我已经设置了以下依赖项属性;但是,我想知道是否有更好的方法来设置子元素的属性而不是下面的方法。

    public sealed partial class LabeledTile : UserControl
{
    public LabeledTile()
    {
        InitializeComponent();
    }

    public static readonly DependencyProperty ImageSourceProperty = DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(LabeledTile), new PropertyMetadata(null,(o, args) => ((LabeledTile) o).ImageSourceChanged((ImageSource)args.NewValue)));

    private void ImageSourceChanged(ImageSource newValue)
    {
        ImageElement.Source = newValue;
    }

    public ImageSource ImageSource
    {
        get { return (ImageSource) GetValue(ImageSourceProperty); }
        set { SetValue(ImageSourceProperty, value); }
    }

    public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(String), typeof(LabeledTile), new PropertyMetadata(null, (o, args) => ((LabeledTile)o).TextChanged((String)args.NewValue)));

    private void TextChanged(string newValue)
    {
        TextElement.Text = newValue;
    }

    public String Text
    {
        get { return (String) GetValue(TextProperty); }
        set { SetValue(TextProperty, value); }
    }

}

这是我第一次使用依赖属性,我想确保我在赛道上。这似乎比应该要求更多的工作。回调真的是设置值的最佳方法吗?

提前感谢您的帮助。

0 个答案:

没有答案