2017-06-19 3 views
2

私はfreshmvvmを使用しています。ObservableCollectionでモーダルを実装する

モーダル

public class Expense : INotifyPropertyChanged 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public ObservableCollection<ImageSource> Images { get; set; }//here 
    public event PropertyChangedEventHandler PropertyChanged; 
} 

私はあなたの問題を理解すると思う写真の(名前、タイプ、ソース)

public ObservableCollection<ImageSource> Images { 
    public string name { get; set; } 
    public string type { get; set; } 
    public ImageSource source { get; set; } 
} 
+0

質問/問題は何ですか? –

+0

2番目のコード例にはどのような構文がありますか? –

答えて

1

のような特性を与えるしたいと思います。画像に「メタデータ」を追加したいとします。あなたがImageSourceは周りのラッパークラスを作成したり、ImageSourceはからクラスを派生可能性が(私は両方を紹介します):

ラッパークラス

public class ImageWrapper 
{ 
    public string name { get; set; } 
    public string type { get; set; } 
    public ImageSource source { get; set; } 
} 

public class Expense : INotifyPropertyChanged 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public ObservableCollection<ImageWrapper> Images { get; set; }//here 
    public event PropertyChangedEventHandler PropertyChanged; 
} 

派生クラス

public class MyImageSource : ImageSource 
{ 
    public string name { get; set; } 
    public string type { get; set; } 
} 

public class Expense : INotifyPropertyChanged 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public ObservableCollection<MyImageSource> Images { get; set; }//here 
    public event PropertyChangedEventHandler PropertyChanged; 
} 

で2番目の例では、オブジェクトitselがプロパティが追加されたImageSourceであるため、ImageSourceを保持するプロパティは必要ありません。それがあなたのアプリケーションに悪影響を及ぼさないならば、私はこれと一緒に行くだろう。それが多くのリファクタリングを必要とする場合は、最初の例もokです。

関連する問題