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);
            }
        }