WPF文本框,无法编辑文本...即将放弃

时间:2018-10-04 02:59:53

标签: wpf xaml textbox

我有几个用户控件,它们分别位于一个tabcontrol的不同选项卡之间。除了一个以外,所有这些用户控件均具有功能正常的文本框。在此特定控件上,我无法在其任何文本框控件中编辑值。

我可以在文本框中找到光标,并且可以突出显示文本,但是不能删除或添加文本。它所在的UserControl没什么特别的。它不是弹出窗口,也不是类似的东西(我知道这可能会引起问题)。

在文本框之外,是否有任何其他东西可能导致此问题?我没有主意...

                    <TextBox  x:Name="SpeedRange3Text" Width="35" Height="20"
                          FontSize="8"
                          Style="{StaticResource TextBoxStyle}"
                          MaxLength="4"
                          HorizontalAlignment="Center"
                          VerticalAlignment="Center"
                          TextAlignment="Center"
                          Text="{Binding SpeedRange3 }"
                          IsReadOnly="False"
                          Grid.Row="0" Grid.Column="3"/>

    public double SpeedRange3
    {
        get
        {
            return _spdRng_3;
        }

        set
        {
           if (value <= 60 && value >= 0)
            {
                _spdRng_3 = value;
            }
            else
            {
                _spdRng_3 = 0;
                MessageBox.Show("Enter a value between 0 and 60");
            }

            NotifyPropertyChanged("SpeedRange3");
        }
    }

3 个答案:

答案 0 :(得分:0)

如果您正在对该文本框的TextChanged事件进行一些操作, 将断点添加到代码中的TextChanged事件中,然后看看会发生什么。当我键入内容时,事件也清除了,我也遇到了类似的问题。只是一个猜测。

答案 1 :(得分:0)

我的猜测是,重点仍然放在应用程序中的其他窗口上。也许您应该尝试着重于Window / UserControl

答案 2 :(得分:0)

我正在回答这个旧线程,希望它可以帮助某人,因为我终于解决了我在这方面遇到的问题。 在我的特定情况下,TextBox 位于 DataGrid 中,该 DataGrid 的 IsHitTestVisible 属性设置为 False;删除此属性解决了问题。

作为澄清,这就是我所拥有的:

<DataGrid IsHitTestVisible="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn IsReadOnly="False" Header="Value">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}" IsReadOnly="False" TextWrapping="WrapWithOverflow"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

这是工作代码:

<DataGrid>
    <DataGrid.Columns>
        <DataGridTemplateColumn IsReadOnly="False" Header="Value">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}" IsReadOnly="False" TextWrapping="WrapWithOverflow"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>