0

aとof の間の関係を実装するためにSQLiteNet-Extensionsを使用しています。OneToManyPlaylistIListTrack

現時点では、ライブラリでサポートされているコレクション タイプはListと 配列のみです (ライブラリをIListas として許可するように変更しました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追加するときに何を使用すればよいかわからないことを除いて、これは機能するはずです。TrackObservableList

それとも、これで完全に間違った方向に進んでいますか?

4

1 に答える 1

1

SQLite-Net 拡張機能はObservableList、*ToMany プロパティとして既にサポートしています。もう回避策は必要ありません。

于 2014-12-18T10:01:02.903 に答える