public void setPropData(ShowPropAction showProp) { if (propData != null) { propData.Updated -= propData_Updated; propData.ActionAdded -= propData_ActionAdded; propData.ActionRemoved -= propData_ActionRemoved; } timelineView.clearTracks(); timelineDataManager.clearData(); this.propData = showProp; if (propData != null) { ShowPropTrackInfo propTrackInfo; if (propFactory.tryGetTrackInfo(showProp.PropType, out propTrackInfo)) { foreach (ShowPropSubActionPrototype prototype in propTrackInfo.Tracks) { timelineView.addTrack(prototype.TrackName, prototype); } } foreach (ShowPropSubAction action in showProp.SubActions) { addSubActionData(action, false); } timelineView.Duration = showProp.Duration; propData.Updated += propData_Updated; propData.ActionAdded += propData_ActionAdded; propData.ActionRemoved += propData_ActionRemoved; } else { timelineView.Duration = 0.0f; } MarkerTime = propEditController.MarkerPosition; }