WP7] [MVVM Light Toolkit] Кнопка кнопки слишком рано, перед привязкой при использовании MVVM-Light Toolkit

StackOverflow https://stackoverflow.com/questions/4012450

  •  26-09-2019
  •  | 
  •  

Вопрос

Я использую MVVM-Light Toolkit в моем приложении Windows Phone 7.

У меня на мой взгляд:

<TextBox Height="78" HorizontalAlignment="Left" Margin="108,33,0,0" VerticalAlignment="Top" Width="313" Text="{Binding MyValue, Mode=TwoWay}" />
<Button Content="Go" Height="78" HorizontalAlignment="Left" Margin="127,252,0,0" Name="button1" VerticalAlignment="Top" Width="213" cmd:ButtonBaseExtensions.Command="{Binding DoCommand}"  />

Мой вид модели:

    public class MainPageViewModel : ViewModelBase
    {
        public ICommand DoCommand { get; internal set; }
    public MainPageViewModel()
    {
        DoCommand = new RelayCommand(() =>
            {
                DoSomethingWith(MyValue);
            }, () => true);

    }

    private const string MyValuePropertyName = "MyValue";
    private string _myValue;
    public string MyValue
    {
        get { return _myValue; }
        set
        {
            if (_myValue == value)
                return;
            _myValue = value;
            RaisePropertyChanged(MyValuePropertyName);
        }
    }
}

В эмуляторе, когда я нахожу значение в текстовом поле, и я нажимаю кнопку, я вижу, что я сначала иду в выражение лямбда релаомманда и с точкой останова, я вижу, что myvalue - это нулевой. Затем достигается точка останова в установке MyValue, и правильное значение идет в MyValue.

Что я делаю неправильно ? Конечно, я хотел бы, чтобы сеттер можно было добраться до релайокомана ...

Заранее благодарю за любую помощь.

Это было полезно?

Решение

Возможно, вы попали в проблему DataBinding TextBox с помощью TextChanged Event. Это признанная проблема в Silverlight 3, Смотрите эту тему, обсуждающую эту проблему и обходной путь. Аккуратный раствор, возможно, использовать поведение, как обсуждалось в эта статья.

Х-е, индифромоз

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top