2013-02-21 5 views
0

У меня есть TabControl с тремя TabItems. В каждом из TabItems находится один ComboBox. Если я переключаюсь через TabItems, выбирается первая запись ComboBoxes. Но я хочу, чтобы ничего не было выбрано. Как это сделать?Почему первый элемент ComboBox выбран после переключения на другой TabItem?

Вот несколько скриншотов:

После первого вызова формы, нет ничего выбран enter image description here

После перехода на вторую вкладку, выбирается первый элемент выпадающего списка enter image description here

Update: Это код для этого примера

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Width="525" SizeToContent="Height"> 
<Grid> 
    <TabControl> 
     <TabItem Header="Test 1"> 
      <ComboBox> 
       <ComboBoxItem>Test 1</ComboBoxItem> 
       <ComboBoxItem>Test 2</ComboBoxItem> 
      </ComboBox> 
     </TabItem> 
     <TabItem Header="Test 2"> 
      <ComboBox> 
       <ComboBoxItem>Test 1</ComboBoxItem> 
       <ComboBoxItem>Test 2</ComboBoxItem> 
      </ComboBox> 
     </TabItem> 
     <TabItem Header="Test 3"> 
      <ComboBox> 
       <ComboBoxItem>Test 1</ComboBoxItem> 
       <ComboBoxItem>Test 2</ComboBoxItem> 
      </ComboBox> 
     </TabItem> 
    </TabControl> 
</Grid> 

Без привязки. Новый проект в Visual Studio Express 2010

А вот код позади:

using System.Windows; 
namespace WpfApplication1 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
     InitializeComponent(); 
     } 
    } 
} 
+0

Связаны ли они с одним и тем же «ItemSource»? –

+0

Нет, все это простые комбобокс без привязки. – Smolla

+1

Почему вы устанавливаете выделение, если вы не хотите, чтобы он был выбран? Просто удалите значения «SelectedIndex» –

ответ

1

С вашей помощью и долгим путешествием через Интернет, теперь я знаю, что нет никакого способа, чтобы избежать поведений, что первый фокусируемый ребенок на TabItem получает целенаправленные, без какой-либо коды позади :(

Спасибо всем за ответы, особенно @makc за советом, что синий фон означает, что выпадающий сфокусирована

1

Ну нет ошибки в коде примера.

Этот код?

Попробуйте удалить любой объект, который вы выбрали, или если есть обязательная информация, ответьте ему.

No error

+0

Ничего не выбрано и нет привязки. – Smolla

0

Попробуйте установить FocusVisualStyle в null для выпадающего списка -.

  <ComboBox FocusVisualStyle="{x:Null}"> 
       <ComboBoxItem>Test 1</ComboBoxItem> 
       <ComboBoxItem>Test 2</ComboBoxItem> 
      </ComboBox> 
+0

Хотя я не смог воссоздать проблему с кодом, который вы опубликовали выше. –

+0

Ничего не изменилось. Комбобокс является первым настраиваемым ребенком в TabItem, и он фокусируется, что означает, что фон меняется на синий. – Smolla