2016-02-02 32 views
0

我有可編輯的組合框,其中我基於某些邏輯而不是組合框項目動態添加了字符串。從WPF中的可編輯組合框中獲取高亮項目

現在,我想突出顯示的項目時,組合框得到關注,我知道ComboBox項已IsHighlighted屬性,它可以工作,但自從我加入一個字符串,

如何從C#得到突出顯示的刺? 請注意,如果我試圖將字符串轉換爲Combobox Item,它將會出錯!

enter image description here

回答

0

不知道我真的明白你正在嘗試做的,但你可以得到與所選項目相關聯的ComboBoxItem一個辦法是做這樣的事情:

ComboBoxItem comboBoxItem = (ComboBoxItem)DraggedComboBox2.ItemContainerGenerator.ContainerFromItem(DraggedComboBox2.SelectedItem); 
+0

謝謝澤維爾,我試過,但comboBoxItem是空的,任何建議? –

0

的你寫的代碼得到的選定項目不是高亮的!這個例子將做的工作適合你:

注:在隱藏文件中的代碼使用了高亮和LostFocus爲了解事件GotFocus當一個項目成爲「未加亮」:

<ComboBox Height="33" HorizontalAlignment="Left" Margin="128,107,0,0" Name="comboBox1" VerticalAlignment="Top" Width="245"> 
      <ComboBox.Resources> 
       <Style TargetType="ComboBoxItem"> 
        <EventSetter Event="GotFocus" Handler="GotFocusHandler" /> 
        <EventSetter Event="LostFocus" Handler="LostFocusHandler" /> 
       </Style> 
      </ComboBox.Resources> 
      <ComboBoxItem Content="Cat 1" /> 
      <ComboBoxItem Content="Cat 2" /> 
      <ComboBoxItem Content="Cat 3" /> 
      <ComboBoxItem Content="Cat 4" /> 
     </ComboBox> 

private void GotFocusHandler(object sender, RoutedEventArgs e) 
     { 
      string HighlightedText = (sender as ComboBoxItem).Content.ToString(); 
      //do some thing 
     } 

     private void LostFocusHandler(object sender, RoutedEventArgs e) 
     { 
      string HighlightedText = (sender as ComboBoxItem).Content.ToString(); 
      //do some thing 
     }