Currently Singer and SingerState inherit the ISinger, but SingerState is not a part of singer.
SingerState is designed to describe the state of the singer (e.g. happy, yell, soft, sad...), but not very sure SingerState is needed because:
Singer should be enough now.
It might make the editor too complex if add the singer state.
But before deciding to remove the SingerState, maybe some refactoring job can be done first.
in Lyric:
BindableList<ElementId> SingerIdsBindable should be BindableDictioary<ElementId, ElementId[]> SingerIdsBindable
in SingerInfo:
Record the Singer and SingerState can be two different list.
Add/remove singer/singer info logic should be moved into the change handler. singer info should only focus on store the singer's info.
Currently
Singer
andSingerState
inherit theISinger
, butSingerState
is not a part of singer.SingerState
is designed to describe the state of the singer (e.g. happy, yell, soft, sad...), but not very sureSingerState
is needed because:Singer
should be enough now.But before deciding to remove the
SingerState
, maybe some refactoring job can be done first.in
Lyric
:BindableList<ElementId> SingerIdsBindable
should beBindableDictioary<ElementId, ElementId[]> SingerIdsBindable
in
SingerInfo
:Singer
andSingerState
can be two different list.in
SingerState
:ISinger
interface.in
ISinger
: