2017-09-02 13 views
0

私は3つのオプションを持つコンボボックスを持っていますeditableに移動し、Select Fileダイアログボックスを開きます。編集可能なコンボボックスを開き[ファイル]ダイアログ

ただし、[OK]を押すと、選択したファイルは、myComboBox.Text = selectFile.FileNameを使用して、ComboBoxの編集可能なテキストボックスに表示されません。

テキストをテキストボックスに表示させるにはどうすればよいですか?

XAML

<ComboBox x:Name="myComboBox" 
      Margin="0,164,14,0" 
      VerticalAlignment="Top" 
      HorizontalAlignment="Right" 
      Width="103" 
      IsTextSearchEnabled="False" 
      SelectionChanged="myComboBox_SelectionChanged"> 
    <System:String>off</System:String> 
    <System:String>auto</System:String> 
    <System:String>select</System:String> 
</ComboBox> 

C#

private void myComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if ((string)myComboBox.SelectedItem == "select") 
    { 
     myComboBox.IsEditable = true; 

     // Open 'Select File' 
     Microsoft.Win32.OpenFileDialog selectFile = new Microsoft.Win32.OpenFileDialog(); 
     selectFile.RestoreDirectory = true; 
     Nullable<bool> result = selectFile.ShowDialog(); 

     // Process dialog box 
     if (result == true) 
     { 
      myComboBox.Text = selectFile.FileName; 
     } 
    } 

    else if ((string)myComboBox.SelectedItem != "select" 
     && !string.IsNullOrEmpty((string)myComboBox.SelectedItem)) 
    { 
     myComboBox.IsEditable = false; 
    } 
} 

答えて

1

あなたは、コンボボックスのために、リスト内の項目の一つではないコンボボックスで項目を選択することはできません。だからあなたが望むものを達成するためには、選択したファイルをアイテムのリストに追加してからそれを選択する必要があります。そのように...

  // Process dialog box 
      if (result == true) 
      { 
       myComboBox.Items.Add(selectFile.FileName); 
       myComboBox.SelectedItem = selectFile.FileName; 
      } 
+0

"select"という項目を選択するだけで、入力できる空のテキストボックスに変更されますが、空のテキストボックスを 'selectFile .Filename'。 –

+0

はい。 "SelectedItem"ステートメントはこれを実行します。 – AQuirky

+0

私はおそらくこの方法を使用しますが、私はコンボボックスに別のオプションを追加しないようにしたいと思います。 –

関連する問題