0
public class ImageData
{
    public int ImageIndex { get; set; }
    public ImageSource ImgSource { get; set; }
    public string SourceUrl { get; set; }
    public DateTime CreateTime { get; set; }
    public string ImageTitle { get; set; }
    public string ImageClass { get; set; }
}


public partial class ImageListControl : UserControl
{

    public static readonly DependencyProperty ImageDataListProperty = DependencyProperty.Register("ImageDataList",
            typeof(System.Collections.ObjectModel.ObservableCollection<ImageData>), typeof(ImageListControl),
            new FrameworkPropertyMetadata("NO DATA"));

    public ImageListControl()
    {
        InitializeComponent();

    }

    public System.Collections.ObjectModel.ObservableCollection<ImageData> ImageDataList
    {
        get { return (System.Collections.ObjectModel.ObservableCollection<ImageData>)GetValue(ImageDataListProperty); }
        set { SetValue(ImageDataListProperty, value); }
    }

}

我使用 UserControl 注册了 DependencyProperty 错误。为什么我不能注册 DependencyProperty ?我不知道出了什么问题。请帮帮我,谢谢。

4

2 回答 2

1

在 DependencyProperty.Register 的第四个参数中,您正在传递属性元数据,该元数据指定“NO DATA”属性的默认字符串值,该属性无法转换为 ObservableCollection。将行更改为:

public static readonly DependencyProperty ImageDataListProperty = DependencyProperty.Register("ImageDataList",
        typeof(System.Collections.ObjectModel.ObservableCollection<ImageData>), typeof(ImageListControl),
        new FrameworkPropertyMetadata());
于 2012-04-11T14:56:04.107 回答
0

FrameworkPropertyMetadata的构造函数将对象作为第一个参数。此对象是您的属性的默认值。所以问题是字符串"NO DATA"不能转换成ImageData. 您可以提供作为参数,也可以提供一些对您来说看起来更有效null的适当实例。ImageData不过我更喜欢null

于 2012-04-11T14:55:43.743 回答