2

我正在使用freshmvvm。

模态

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; }
 }
4

1 回答 1

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;
}

在第二个示例中,您不需要属性来保存 ImageSource,因为对象 itsel 是具有附加属性的 ImageSource。如果这对您的申请没有负面影响,我会同意的。如果这需要大量重构,那么第一个示例也可以。

于 2017-06-19T08:20:12.203 回答