0

我正在使用SQLiteNet-Extensions来实现a和 an ofOneToMany之间的关系。PlaylistIListTrack

目前,库唯一支持的集合类型是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; }
}

这似乎应该可以工作,除了我不知道propertyNameTrack向我的ObservableList?

还是我在这方面走错了路?

4

1 回答 1

1

SQLite-Net Extensions 已经支持ObservableList*ToMany 属性。不再需要任何解决方法。

于 2014-12-18T10:01:02.903 回答