private void listVoices_ItemChecked(object sender, ItemCheckedEventArgs e) { //QuestToSpeech.Voice s = Array.Find(tmpSelectedList.ToArray(), delegate (QuestToSpeech.Voice tv) { return (tv.Gender == v.Gender && tv.Name == v.Name && tv.LangCode == v.LangCode && tv.Module == v.Module); }); if (drawn) { QuestToSpeech.Voice voice = new QuestToSpeech.Voice() { Name = e.Item.SubItems[0].Text, Gender = e.Item.SubItems[1].Text == "Female" ? QuestToSpeech.Gender.Female : QuestToSpeech.Gender.Male, LangCode = e.Item.SubItems[3].Text, Module = QuestToSpeech.GetModule(e.Item.SubItems[2].Text) }; if (e.Item.Checked) { if (!tmpSelectedList.Exists(vx => QuestToSpeech.IsVoice(vx, voice))) { tmpSelectedList.Add(voice); } } else { if (tmpSelectedList.Exists(vx => QuestToSpeech.IsVoice(vx, voice))) { tmpSelectedList.Remove(tmpSelectedList.Find(vx => QuestToSpeech.IsVoice(vx, voice))); } } } lblNumTotalSelected.Text = string.Format("(Total selected {0})", tmpSelectedList.Count); }
private void comboLangCodes_SelectedIndexChanged(object sender, EventArgs e) { drawn = false; listVoices.Items.Clear(); string langCode = comboLangCodes.SelectedItem.ToString(); //QuestToSpeech.Voice x = (QuestToSpeech.Voice)Array.Find(tmpSelectedList.ToArray(), delegate (QuestToSpeech.Voice v) { return v.LangCode == langCode; }); //if (x != null) foreach (QuestToSpeech.Voice v in voices) // insert voices by selected lang code { if (v.LangCode == langCode) { listVoices.Items.Add(v.Name).SubItems.AddRange(new string[] { v.Gender.ToString(), v.Module.ToString(), v.LangCode }); if (tmpSelectedList.Exists(v1 => QuestToSpeech.IsVoice(v1, v))) { listVoices.Items[listVoices.Items.Count - 1].Checked = true; } } } drawn = true; }