我正在使用SQLiteNet-Extensions来实现a和 an ofOneToMany
之间的关系。Playlist
IList
Track
目前,库唯一支持的集合类型是List
和数组(我将库更改为允许IList
作为 a List
)。
现在,我希望能够在我的曲目集合被修改(添加、删除、清除)时收到通知,但ObservableCollection
图书馆不允许(而且我也不想过多地更改图书馆)。这意味着我正在尝试重新创建ObservableCollection
如下:
class ObservableIList<T> : IList<T>, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
private List<T> list = new List<T>();
public void Add(T item)
{
list.Add(item);
OnPropertyChanged("magical property name");
}
....
}
所以我Playlist
看起来如下:
class Playlist
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Title { get; set; }
[Indexed]
public Boolean isCurrent { get; set; }
[OneToMany]
public ObservableIList<Track> Tracks { get; set; }
}
这似乎应该可以工作,除了我不知道propertyName
在Track
向我的ObservableList
?
还是我在这方面走错了路?