У меня есть этот код 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 верны.
Спасибо за любую помощь,
Томас