Why is the combo box cursor/caret moves to the beginning when down arrow is hit?
don bradman
621
Reputation points
In my app I have a combo box
<ComboBox
ItemsSource="{Binding ComboItems}"
SelectedItem="{Binding SelectedCBItem}"
StaysOpenOnEdit="True"
Text="{Binding SelectedCBItem, UpdateSourceTrigger=PropertyChanged}"
IsTextSearchEnabled="True"
IsEditable="True"
When I'm typing on the combo box and I hit the down arrow for some reason the caret/cursor moves to the beginning of the combo box.
How do I fix this?
I also have some styling implemented in my app.xaml file for the combo box's, not sure any of them are causing this
<!--ComboBox styling-->
<ControlTemplate
x:Key="ComboBoxToggleButton"
TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition
Width="20" />
</Grid.ColumnDefinitions>
<Border
x:Name="Border"
Grid.ColumnSpan="2"
CornerRadius="0"
Background="#FF3F3F3F"
BorderBrush="#FF97A0A5"
BorderThickness="1" />
<Border
Grid.Column="0"
CornerRadius="0"
Margin="1"
Background="#FF3F3F3F"
BorderBrush="#FF97A0A5"
BorderThickness="0,0,1,0" />
<Path
x:Name="Arrow"
Grid.Column="1"
Fill="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M0,0 L0,2 L4,6 L8,2 L8,0 L4,4 z" />
</Grid>
</ControlTemplate>
<ControlTemplate
x:Key="ComboBoxTextBox"
TargetType="{x:Type TextBox}">
<Border
x:Name="PART_ContentHost"
Focusable="False"
Background="{TemplateBinding Background}" />
</ControlTemplate>
<Style
x:Key="{x:Type ComboBox}"
TargetType="{x:Type ComboBox}">
<Setter
Property="SnapsToDevicePixels"
Value="true" />
<Setter
Property="OverridesDefaultStyle"
Value="true" />
<Setter
Property="ScrollViewer.HorizontalScrollBarVisibility"
Value="Auto" />
<Setter
Property="ScrollViewer.VerticalScrollBarVisibility"
Value="Auto" />
<Setter
Property="ScrollViewer.CanContentScroll"
Value="true" />
<Setter
Property="MinWidth"
Value="120" />
<Setter
Property="MinHeight"
Value="20" />
<Setter
Property="Foreground"
Value="White" />
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type ComboBox}">
<Grid>
<ToggleButton
Name="ToggleButton"
Template="{StaticResource ComboBoxToggleButton}"
Grid.Column="2"
Focusable="false"
IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}"
ClickMode="Press"></ToggleButton>
<ContentPresenter
Name="ContentSite"
IsHitTestVisible="False"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
Margin="3,3,23,3"
VerticalAlignment="Center"
HorizontalAlignment="Left" />
<TextBox
x:Name="PART_EditableTextBox"
Style="{x:Null}"
Template="{StaticResource ComboBoxTextBox}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="3,3,23,3"
Focusable="True"
Background="#FF3F3F3F"
Foreground="#76FF03"
Visibility="Hidden"
IsReadOnly="{TemplateBinding IsReadOnly}" />
<Popup
Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Slide">
<Grid
Name="DropDown"
SnapsToDevicePixels="True"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}">
<Border
x:Name="DropDownBorder"
Background="#FF3F3F3F"
BorderThickness="1"
BorderBrush="#888888" />
<ScrollViewer
Margin="4,6,4,6"
SnapsToDevicePixels="True">
<StackPanel
IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger
Property="HasItems"
Value="false">
<Setter
TargetName="DropDownBorder"
Property="MinHeight"
Value="95" />
</Trigger>
<Trigger
Property="IsEnabled"
Value="false">
<Setter
Property="Foreground"
Value="#888888" />
</Trigger>
<Trigger
Property="IsGrouping"
Value="true">
<Setter
Property="ScrollViewer.CanContentScroll"
Value="false" />
</Trigger>
<Trigger
SourceName="Popup"
Property="Popup.AllowsTransparency"
Value="true">
<Setter
TargetName="DropDownBorder"
Property="CornerRadius"
Value="0" />
<Setter
TargetName="DropDownBorder"
Property="Margin"
Value="0,2,0,0" />
</Trigger>
<Trigger
Property="IsEditable"
Value="true">
<Setter
Property="IsTabStop"
Value="false" />
<Setter
TargetName="PART_EditableTextBox"
Property="Visibility"
Value="Visible" />
<Setter
TargetName="ContentSite"
Property="Visibility"
Value="Hidden" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- SimpleStyles: ComboBoxItem -->
<Style
x:Key="{x:Type ComboBoxItem}"
TargetType="{x:Type ComboBoxItem}">
<Setter
Property="SnapsToDevicePixels"
Value="true" />
<Setter
Property="Foreground"
Value="White" />
<Setter
Property="OverridesDefaultStyle"
Value="true" />
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type ComboBoxItem}">
<Border
Name="Border"
Padding="2"
SnapsToDevicePixels="true">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger
Property="IsHighlighted"
Value="true">
<Setter
TargetName="Border"
Property="Background"
Value="#EA80FC" />
</Trigger>
<Trigger
Property="IsEnabled"
Value="false">
<Setter
Property="Foreground"
Value="#888888" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Note: I'm trying to follow MVVM pattern