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 の 4 番目のパラメーターでは、ObservableCollection に変換できない "NO DATA" のプロパティの既定の文字列値を指定するプロパティ メタデータを渡しています。行を次のように変更します。

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 に答える