2012-04-11 7 views
0
私は私がしたDependencyPropertyをしたDependencyProperty error.Why登録利用ユーザーコントロールを登録することはできません
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); } 
    } 

} 

?私は何が間違っているのか分からない。助けてください、ありがとう。ユーザーコントロールDependencyProperty.RegisterのERROR

答えて

0

FrameworkPropertyMetadataのコンストラクタは、最初のパラメータとしてオブジェクトをとります。このオブジェクトは、プロパティのデフォルト値です。文字列"NO DATA"ImageDataに変換できないという問題があります。パラメータとしてnullを指定するか、ImageDataのどちらか適切な方が適切かどうかを適切なインスタンスとして指定することができます。私はnullを好む。

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()); 
関連する問題