public void SetCurrentWord(WordOfDictionary item)
        {

            if (CurrentWord != null)  CurrentWord.PropertyChanged -= CurrentWord_PropertyChanged;

            CurrentWord = item;
            if (!IsInDesignMode)
            {
                CommandDispatcher("SpeechItem");
            }
            CurrentWord.PropertyChanged += CurrentWord_PropertyChanged;


            // default setting
            btnOk.Visibility = Visibility.Collapsed;
            TranslationsPanel_Visibility = Visibility.Collapsed;
            ImagesList_Visibility = Visibility.Collapsed;

            EditModeVisibility = Visibility.Collapsed;

            bool Testing = false;
            switch (mode)
            {
                case Mode.FoundNewWord:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.NewWordsFound");
                    Testing = LearningItem.TestingUnderstandingNewWords;
                    btnTrainingNext.Visibility = Visibility.Collapsed;
                    ImagePanelVisibility = Testing ? Visibility.Collapsed : Visibility.Visible;
                    WordsButtonPanelVisibility = Testing ? Visibility.Visible : Visibility.Collapsed;
                    TranslatingVisibility = Testing ? Visibility.Hidden : Visibility.Visible;
                    BottomButtonsPanelVisibility = Testing ? Visibility.Collapsed : Visibility.Visible;
                    break;

                case Mode.Training:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.Training");
                    Testing = true;
                    btnTrainingNext.Visibility = Visibility.Hidden;
                    ImagePanelVisibility = Visibility.Hidden;
                    WordsButtonPanelVisibility = Visibility.Visible;
                    TranslatingVisibility = Visibility.Hidden;
                    BottomButtonsPanelVisibility = Visibility.Collapsed;
                    WordsCollection_ListModel.Visibility = Visibility.Visible;
                    btnPreviousButton.Visibility = Visibility.Collapsed;
                    btnNextButton.Visibility = Visibility.Collapsed;
                    break;

                case Mode.WordTranslation:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.Translation");
                    Testing = false;
                    btnTrainingNext.Visibility = Visibility.Visible;
                    btnPreviousButton.Visibility = Visibility.Hidden;
                    btnNextButton.Visibility = Visibility.Hidden;
                    WordsCollection_ListModel.Visibility = Visibility.Visible;
                    break;

                case Mode.Edit:
                    btnPreviousButton.Visibility = Visibility.Collapsed;
                    btnNextButton.Visibility = Visibility.Collapsed;
                    WordsCollection_ListModel.Visibility = Visibility.Collapsed;
                    btnOk.Visibility = Visibility.Visible;
                    BottomButtonsPanelVisibility = Visibility.Collapsed;
                    WordsButtonPanelVisibility = Visibility.Collapsed;
                    btnTrainingNext.Visibility = Visibility.Collapsed;
                    TranslatingVisibility = Visibility.Collapsed;
                    TranslationsPanel_Visibility = Visibility.Visible;
                    ImagesList_Visibility = Visibility.Visible;
                    EditModeVisibility = Visibility.Visible;
                    break;

                default:
                    throw new NotImplementedException();
            }

            /*
            btnSkip.Visibility = Visibility.Visible;
            if(Testing)
            {
                btnPreviousButton.Visibility = Visibility.Hidden;
                btnNextButton.Visibility = Visibility.Hidden;
                WordsCollection_ListModel.Visibility = Visibility.Visible;
            } else
            {
                WordsCollection_ListModel.Visibility = Visibility.Collapsed;
                btnNextButton.Visibility = idx < WordsCollection.Count - 1 ? Visibility.Visible : Visibility.Hidden;
                btnPreviousButton.Visibility = idx > 0 ? Visibility.Visible : Visibility.Hidden;
            }
            */

            if (IsInDesignMode) return;

            if (Testing)
            {
                PhraseOfCollectMode phrase = new PhraseOfCollectMode();
                PhraseOfCollectMode.Word trueword = new PhraseOfCollectMode.Word() { word = CurrentWord.translation_as_string };
                phrase.Words.Add(trueword);

                if(CurrentWord.translation_as_string.Length > 0)
                {
                    ObservableCollection<FrequencyDictionary.Item> coll = CurrentWord.Dictionary.SecondaryLanguage.FrequencyDictionary.GetRndWords(4);
                    foreach(var elm in coll)
                    {
                        phrase.Words.Add(new PhraseOfCollectMode.Word() { word = elm.Lemma});
                    }
                } else throw new NotImplementedException("err");

                WordsForSelection_Buttons.Clear();
                phrase.StartRandomSelection();
                for (int i = 0; i < phrase.Words.Count; i++)
                {
                    PhraseOfCollectMode.Word word = phrase.GetNextRandom();
                    WordsForSelection_Buttons.Add(new ButtonModel() { Text=word.word, WordOfButton = word,IsItTrue = word == trueword});
                }
            }
        }
        private void AddWordsToPanel(SubtitleItem SubItem)
        {
            player.Pause();
            CollectPhrases_Buttons.Clear();

            if (SubItem == null) return;

            if (SubItem.IsCollect)
            {
                CollectedPhraseText = SubItem.Text;
                return;
            }

            CurrentPhrase = new PhraseOfCollectMode(SubItem);
            CurrentPhrase.StartRandomSelection();
            for (int i = 0; i < CurrentPhrase.Words.Count; i++)
            {

                PhraseOfCollectMode.Word word = CurrentPhrase.GetNextRandom();
                CollectPhrases_Buttons.Add(new ButtonModel() { WordOfButton = word,Visibility = Visibility.Visible});
            }
            player.Play();
        }