WPF - Странное поведение TextBox при отключении от модели представления - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть этот код xaml в пользовательском элементе управления:

<StackPanel Orientation="Horizontal" IsEnabled="{Binding CanEditOpenCut}">
        <TextBox Text="{Binding OpenCut}" Margin="5" Width="80"/>
        <TextBlock Text="°C" />
 </StackPanel>

И у меня есть viewmodel со свойствами:

    private decimal _openCut;
    public decimal OpenCut
    {
        get
        {
            return _openCut;
        }
        set
        {
            if (Set(ref _openCut, value))
            {
                RaisePropertyChanged(() => OpenCut);

                if (this.PrevRunConfig != null)
                {
                    this.PrevRunConfig.CloseCut = _openCut;
                }
            }
        }
    }
    private bool _canEditOpenCut;
    public bool CanEditOpenCut
    {
        get
        {
            return _canEditOpenCut;
        }
        set
        {
            if (Set(ref _canEditOpenCut, value))
            {
            }
        }
    }

Теперь привязка работает нормально, когда я устанавливаю в текстовом поле, например, 40 затемУ меня есть это в моем свойстве OpenCut в viewmodel.Если я устанавливаю что-то в viewmodel, я получаю это в текстовом поле.Пока это работает.Теперь я пытаюсь отключить текстовое поле и сбросить значение до некоторого значения по умолчанию, например 20. Есть 2 сценария, один работает, а другой нет.

1) Если я установлю, например, 40 в текстовом поле, то потеряю фокус и затем установлюCanEditOpenCut = false и OpenCut = 20, все работает. Я вижу в текстовом поле значение 20.

2) Я установил значение 40 для текстового поля, НЕ НУЖНО !!!потерять фокус текстового поля, затем я установил CanEditOpenCut = false и OpenCut = 20. Теперь это не работает. Я все еще вижу 40 в текстовом поле, хотя значения в viewmodel верны.

Спасибо за любую помощь,

Томас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...