Проблема с вводом данных в TextBox с помощью MVVM Light. - PullRequest
0 голосов
/ 02 января 2012

Я работаю над приложением 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 голосов
/ 02 января 2012

1) Привязка не является проблемой, фактически, даже если она неверна, вы все равно сможете писать в этом TextBox, она просто не будет помещена в SearchKeyWord.Кстати, вы ошиблись (вы забыли R в seaRch).

2) Если вы действительно устанавливаете фокус только на загруженное событие, а ничто , то этоне проблема также.

3) MVVM Light - это просто инфраструктура удобства, она не меняет WPF для вас, поскольку она просто предоставляет инструменты, она определенно не мешает TextBoxes.

Этосказал, вот что я бы проверил в вашей ситуации:

  • Если SearchKeyWord является свойством зависимости , посмотрите, где оно объявлено, чтобы увидеть, объявлен ли callback / coercevalue / validatevalue,Поскольку привязка двухсторонняя, она всегда может сделать недействительными полученные значения (не позволяя вам что-либо на самом деле писать)
  • Проверять весь путь вверх по вашему визуальному дереву для любых неявных стилей для типа TextBox.У них могут быть триггеры, которые портят ваши данные.

Надеюсь, это поможет,

Баб.

0 голосов
/ 02 января 2012

Я не знаю, что не так с вашим кодом.но вы можете помочь себе.поэтому просто удалите привязку и загруженное событие и проверьте, можете ли вы поместить какие-либо данные в текстовое поле.Если да, пожалуйста, опубликуйте весь код вашего мероприятия и viewmodel, иначе трудно помочь.

Вы написали, что можете копировать и вставлять?что это значит?Ваше текстовое поле показывает текст, который вы вставляете?или ваша модель представления получила вставленное значение?

РЕДАКТИРОВАТЬ: вы также можете использовать Snoop для проверки привязки и свойств текстового поля во время выполнения.

...