Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is my WPF textbox "kinda" readonly?

Tags:

.net-3.5

wpf

I have a text box in WPF that is part of a datatemplate for a listbox. In that text box I can delete, backspace, spacebar, but I can NOT type in new words, letters or numbers. I CAN paste from notepad though.

What am I missing here?

 <ListBox Grid.Column="1"          ItemsSource="{Binding Details}"          VirtualizingStackPanel.VirtualizationMode="Recycling"          HorizontalContentAlignment="Stretch" >             <ListBox.Resources>                 <DataTemplate DataType="{x:Type Entities:RADetailEntry}">                     <Grid>                         <Grid.ColumnDefinitions>                             <ColumnDefinition Width="Auto"/>                             <ColumnDefinition Width="*"/>                         </Grid.ColumnDefinitions>                          <ComboBox Grid.Column="0" />                         <TextBox Grid.Column="1" IsReadOnly="False" IsEnabled="True"                                   Text="{Binding Path=Description, Mode=TwoWay}" TextWrapping="Wrap"                                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextAlignment="Left"  />                     </Grid>                 </DataTemplate>             </ListBox.Resources>         </ListBox> 
like image 222
Russ Avatar asked Feb 23 '09 18:02

Russ


People also ask

Is read only in WPF?

For example, the Windows Presentation Foundation (WPF) framework implements the IsMouseOver property as read-only because its value should only be determined by mouse input.

How do you make a TextBox Uneditable in WPF?

To prevent users from modifying the contents of a TextBox control, set the IsReadOnly attribute to true.

Is TextBlock editable?

TextBlock is not editable.

What is WPF TextBlock?

The TextBlock control provides flexible text support for UI scenarios that do not require more than one paragraph of text. It supports a number of properties that enable precise control of presentation, such as FontFamily, FontSize, FontWeight, TextEffects, and TextWrapping.


1 Answers

I was encountering a problem very similar to this. After doing a little research, I found a similar problem listed in MSDN:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c68d5f3c-c8cc-427d-82e3-6135d075a304/

According to the answer to the post, the problem has to do with WPF and WinForms having two very different ways of handling text input. Fortunately, the post listed above gives the following solution:

When launching the window, use ElementHost.EnableModelessKeyboardInterop(window1). Note that this is a static method - you do not have to instantiate the ElementHost class.

For example,

Window window1 = new Window(); ElementHost.EnableModelessKeyboardInterop(window1); window1.Show(); 

This solved the problem for me. Hope this helps.

like image 163
Geoff Avatar answered Oct 24 '22 17:10

Geoff