2016-05-04 5 views
0

私はテーマを変更するための新しいコンボボックスを追加しました。そして、私はそれが良い作品を選択すると、選択が変更されますが、私はコンボボックスからテキストを取得するときにコンボボックスで別の項目のテキストを返します。私は何が問題なのかわかりません、私はデバッグTextBoxを追加し、選択時にComboBoxからイベントのテキストを印刷することでこれを気付きました。ここでコンボボックスのテキストが偽の情報を与えています

はコードです:

private void Themecb_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      if (themeedit == 1) 
      { 
       String txt = Themecb.Text; 
       TextBox1.Text = "THEME WORK " + txt; 
       Tuple<AppTheme, Accent> appStyle = ThemeManager.DetectAppStyle(Application.Current); 
       ThemeManager.ChangeAppStyle(Application.Current, 
              ThemeManager.GetAccent(txt), 
              ThemeManager.GetAppTheme("BaseLight")); // or appStyle.Item1 
      } 
     } 

そしてここでは、XMLファイルです:

<ComboBox x:Name="Themecb" 
HorizontalAlignment="Left" 
Margin="237,227,0,0" 
VerticalAlignment="Top" 
Width="120" 
SelectionChanged="Themecb_SelectionChanged"/> 
+0

SelectedItemプロパティで値を取得しようとしましたか?文字列 'String txt = Themecb.Text;'を 'String txt = Themecb.SelectedItem as string;と置き換えてみてください。誤った値も返ってきたら教えてください。 –

+0

私のために働いてくれてありがとう! –

+0

助けてくれてうれしいです!このコメントを回答として投稿します。正しいものとしてマークしてください。 –

答えて

1

あなたはSelectedItemプロパティによって値を取得しようとしたよう怒鳴ります? String txt = Themecb.Text;String txt = Themecb.SelectedItem as string;に変更してください。

0

Themecb.SelectedValue

+0

いいえ、私はそれに誤りがあります.... –

0

コンボボックスは、次の2つの主要propeties SelectedTextとSelectedValueの

SelectedTを持っているとThemecb.Textを置き換えますextは、選択した項目 SelectedValueのの文字列テキストでみてください、あなたのケースで

ので、バックエンドで各項目を識別するために使用する値がある

if (themeedit == 1) 
      { 
       String txt = Themecb.SelectedText; 
       TextBox1.Text = "THEME WORK " + txt; 
       Tuple<AppTheme, Accent> appStyle = ThemeManager.DetectAppStyle(Application.Current); 
       ThemeManager.ChangeAppStyle(Application.Current, 
              ThemeManager.GetAccent(txt), 
              ThemeManager.GetAppTheme("BaseLight")); // or appStyle.Item1 
      } 
+0

動作していない、それはSelectedTextが認識されないと言う... –

関連する問題