TextBox用MVVM Light输入数据问题。

时间:2012-01-02 07:57:01

标签: wpf textbox mvvm-light

我正在研究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}"/>

2 个答案:

答案 0 :(得分:0)

我不知道您的代码有什么问题。但你可以帮助你自己。所以只需删除绑定和加载的事件,并检查是否可以在文本框中放置任何数据。 如果是,请发布您的事件和viewmodel中的所有代码,否则很难提供帮助。

你写过你可以复制粘贴吗?这是什么意思?您的文本框显示您粘贴的文本?或者您的viewmodel获得了粘贴的值?

编辑:您还可以使用Snoop在运行时检查文本框绑定和属性。

答案 1 :(得分:0)

1)Binding不是问题,事实上即使它是错误的,你仍然可以写入TextBox,它只是不会被放入SearchKeyWord。顺便说一下,你拼错了它(你在seaRch中忘记了一个R)。

2)如果你真的只关注加载的事件,而没有,那么它也不是问题。

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

那就是说,这就是我要检查你的情况:

  • 如果SearchKeyWord是依赖项属性,请查看声明的位置,以查看是否声明了回调/ coercevalue / validatevalue。由于绑定是双向的,因此很可能总是使收到的值无效(阻止您实际在其中写入任何内容)
  • 检查可视树的所有方向,查看TextBox类型的任何隐式样式。他们可能有触发器弄乱你的数据。

希望这有帮助,

巴布。