文本框输入数据问题与MVVM灯



我正在WPF MvvmLight应用程序上工作,一旦我点击第一页,它就会导航到第二页。第二页有一个文本框,焦点设置在这个文本框上。在这个文本框上,我不能放任何数据或任何字符。但是我可以复制粘贴。这种奇怪行为的原因是什么呢?

<TextBox VerticalAlignment="Center" x:Name="txtsearchYouTube" Height="25"
    Margin="100,0,100,0" Canvas.Top="275" Width="500"
    Loaded="txtsearchYouTube_Loaded" Canvas.Left="50"
    Text="{Binding SeachKeyWord,Mode=TwoWay,
    UpdateSourceTrigger=PropertyChanged}"/>

1)绑定不是问题,事实上,即使它是错误的,你仍然可以在那个文本框中写入,它只是不会被放在搜索关键字中。顺便说一下,你把它拼错了(你在seaRch中忘记了一个R)。

2)如果您真的只将焦点设置在加载的事件上,而没有其他,那么这也不是问题。

3) MVVM Light只是一个方便的框架,它不会为你改变WPF,因为它只是提供工具,它绝对不会扰乱文本框。

话虽如此,我还是要检查一下你的情况:

  • 如果SearchKeyWord是一个依赖属性查看它被声明的地方,看看是否有一个callback/coercevalue/validatevalue声明。由于绑定是双向的,它很可能总是使接收到的值无效(防止您在其中实际写入任何内容)
  • 检查你的视觉树,任何隐式样式为TextBox类型。它们可能会触发你的数据。

希望有帮助,

巴布。

我不知道你的代码有什么问题。但是你可以帮助你自己。所以只要移除binding和loaded事件并检查是否可以在文本框中放入任何数据。如果是,请张贴所有的代码从您的事件和视图模型,否则很难帮助。

你写的可以复制粘贴吗?这是什么意思?您的文本框显示粘贴的文本吗?或者你的视图模型得到了粘贴的值?

编辑:你也可以使用Snoop在运行时检查你的文本框绑定和属性

最新更新