internal ExternalTrackerViewModel(IMessageSender sender, IMessageReceiver receiver) : base(sender) { RefreshReceiverSetting(); receiver.ReceivedCommand += OnMessageReceived; //DEBUG: ひとまずガワを見てみたい。 _settingModel = ExternalTrackerFaceSwitchSetting.LoadDefault(); FaceSwitchItems.Clear(); foreach (var item in _settingModel.Items) { FaceSwitchItems.Add(new ExternalTrackerFaceSwitchItemViewModel(this, item)); } }
/// <summary> /// Face Switchの設定が更新されたときにViewModelに情報を反映します。 /// 設定ファイルをロードしたときや、設定をリセットしたときに呼び出される想定です。 /// </summary> internal void LoadFaceSwitchSetting() { //NOTE: 先に名前を更新することで「ComboBoxに無い値をSelectedValueにしちゃう」みたいな不整合を防ぐのが狙い _blendShapeNameStore.Refresh(_model.FaceSwitchSetting); foreach (var item in FaceSwitchItems) { item.UnsubscribeLanguageSelector(); } FaceSwitchItems.Clear(); foreach (var item in _model.FaceSwitchSetting.Items) { var vm = new ExternalTrackerFaceSwitchItemViewModel(this, item); vm.SubscribeLanguageSelector(); FaceSwitchItems.Add(vm); } }