2016-10-13 3 views
-2

Позвольте мне показать вам, что у меня есть в моем коде:ComboBox написание слов в TXT

public List<String> listQuality = new List<string>(); 
public int qualityChoose; 

InitializeComponent(); 

listQuality.Add("Fastest"); 
listQuality.Add("Fast"); 
listQuality.Add("Simple"); 
listQuality.Add("Good"); 
listQuality.Add("Beautiful"); 
listQuality.Add("Fantastic"); 

foreach (String item in listQuality) 
{ 
    listQualityy.Items.Add(item); 
} 

string textWriteQuality; 
textWriteQuality = "-screen-quality " + qualityChoose + Environment.NewLine; 

File.AppendAllText(@"./arguments.txt", textWriteQuality); 

Но OFC это не работает, я думаю, что проблема является «INIT», но я не уверен, я нуб при кодировании это моя первая программа (Да я повторяю это снова XD)

я пропустил какой-то другой код, который бесполезны для вопроса - я думаю -

+1

Вы получаете какие-либо ошибки или исключения? – anmarti

+1

Зачем этот код? foreach (String item in listQuality) { listQualityy.Items.Add (item); } –

+1

Что значит «это не работает»? Что такое «qualityChoose»? Если это проблема с добавлением элементов в ComboBox - см. Это: http://stackoverflow.com/questions/11878217/add-items-to-combobox-in-wpf – PaulF

ответ

0

ваш вопрос не очень понятно, кстати, вы можете сделать что-то вроде этого примера

XAML:

<Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 

     <ComboBox Grid.Row="0" ItemsSource="{Binding listQuality}" SelectedItem="{Binding qualityChoose}"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Item2}"/> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 

     <Button Grid.Row="1" Content="Save" Click="Button_Click"/> 

    </Grid> 

отделенного кода:

public List<Tuple<int, String>> listQuality { get; set; } 
     public Tuple<int, String> qualityChoose { get; set; } 

     public MainWindow() 
     { 
      InitializeComponent(); 
      listQuality = new List<Tuple<int, string>>(); 
      listQuality.Add(new Tuple<int, string>(0, "Fastest")); 
      listQuality.Add(new Tuple<int, string>(1, "Fast")); 
      listQuality.Add(new Tuple<int, string>(2, "Simple")); 
      listQuality.Add(new Tuple<int, string>(3, "Good")); 
      listQuality.Add(new Tuple<int, string>(4, "Beautiful")); 
      listQuality.Add(new Tuple<int, string>(5, "Fantastic")); 

      this.DataContext = this; 
     } 

     private void Button_Click(object sender, RoutedEventArgs e) 
     { 
      int quality = qualityChoose.Item1; 
     } 

при нажатии на кнопку "Сохранить" в qualityChoose.Item1 есть ваше значение

EDIT

используя вместо кортеж можно использовать Список < строка>, как в вашем вопросе, изменить XAML как это:

... 
<ComboBox Grid.Row="0" ItemsSource="{Binding listQuality}" SelectedIndex="{Binding selIndex}"> 
... 

и в коде добавить свойство «selIndex»:

public int selIndex { get; set; } 

в этой собственности есть индекс выбранной строки. это проще, но вы не можете определить ценность качеств.