私はVS2015コミュニティのUWPを今学んでいて、ComboBoxに関して1つのセクションに問題があり、本当に助けを得ることができます。ComboBoxのSelectedIndexがデータ変更の最初の項目に
私は聖書のアプリを書いていて、翻訳、本、章のために3つのコンボボックスを持っています。ブックのドロップダウンを変更すると、章が1に変わるはずです。少なくとも、章の前と後ろのボタンをクリックするまでは、今すぐ基本をカバーするだけです。私が翻訳を変更するとき、NIVからKJVに言えば、その翻訳で現在選択されている書籍/チャプターに変更する必要があります。
私はXMLからテキストをプリロードし、それらをdataLoaderというオブジェクトにロードしました。私は、下のコードでLINQ経由で選択を行っています。
だから、今、私が何か言う:場合は、最初に翻訳のSelectedIndexを-1であるので、私は、インデックスが範囲外にある最初の実行にかかわらず、エラーが戻ってきています
private void DataLoader_Completed(object sender, EventArgs e)
{
dataLoaded = true;
cmb_Translation.ItemsSource = from t in dataLoader.Translations select new { t.TranslationShortName };
cmb_Book.ItemsSource = from b in dataLoader.Translations[0].Books select new { b.BookName };
cmb_Chapter.ItemsSource = from c in dataLoader.Translations[0].Books[0].Chapters select new { c.Index };
cmb_Book.SelectedIndex = 0;
cmb_Translation.SelectedIndex = 0;
cmb_Chapter.SelectedIndex = 0;
}
private void translationChanged()
{
chapterChanged();
}
private void bookChanged()
{
cmb_Chapter.ItemsSource = from c in dataLoader.Translations[cmb_Translation.SelectedIndex].Books[cmb_Book.SelectedIndex].Chapters select new { c.Index };
cmb_Chapter.SelectedIndex = 0;
}
private void chapterChanged()
{
textBlock_Verses.Text = dataLoader.Translations[cmb_Translation.SelectedIndex].Books[cmb_Book.SelectedIndex].Chapters[cmb_Chapter.SelectedIndex].TextLineSeparated;
}
private void cmb_Translation_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
translationChanged();
}
private void cmb_Book_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
bookChanged();
}
private void cmb_Chapter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
chapterChanged();
}
をSelectedIndexが-1であるブックの範囲外になるように、まず翻訳を実行します。
適切なイベントをトリガするために選択したインデックスを変更したいが、それが現在の状態では動作しないことがわかる。また、コードはかなり厄介です、私はバインディングを少し見始めたが、LINQ結果を返すプロパティにバインドする方法を考え出すような多くのハードルがあります。私はこれに前進し、私が得ることができるどんな助けにも間違いなく感謝する方法を確信していません。何も選択していないことができ
それ以外のイベントは無視されてしまったので、私はそれがドロップダウンに依存しますので、空のドロップダウンまたはテキストビューが更新されませんでしただろう、私はそれが働いて取得することよりもさらにをしなければならなかったが判明。SelectedIndexの設定をトリガーするとすぐにイベントが更新されるため、起動しなくても問題が発生しますが、その解説で説明する「パラドックス」に入ります。 –