У меня есть приложение WPF, который использует MVVM и код выглядит следующим образом:Wpf: Текстовый блок не обновляется после изменения
XAML:
<StackPanel Orientation="Vertical">
<TextBox Text="{Binding DataFolder}" TextWrapping="Wrap"/>
<Button Content="Convert" Padding="8" Command="{Binding ConvertCommand}" IsEnabled="True" MinWidth="220"/>
<TextBlock Text="{Binding DoneMessage, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</StackPanel>
ViewModel:
public class ConverterViewModel : NotificationObject
{
public string DataFolder { get; set; }
public string DoneMessage { get; set; }
public DelegateCommand ConvertCommand { get; set; }
private readonly List<BaseConverter> _converters = new List<BaseConverter>
{
new VisualCheckEventConverter()
};
public ConverterViewModel()
{
ConvertCommand = new DelegateCommand(VisualCheckEventConvertCommandExecute);
DataFolder = ConfigurationManager.AppSettings["InputFolder"];
DoneMessage = "Not done yet.";
}
private void VisualCheckEventConvertCommandExecute()
{
foreach (var c in _converters)
c.Convert(DataFolder);
DoneMessage = "Done!";
}
}
Когда я запускаю приложение, появляется сообщение «Еще не сделано». , но после выполнения команды текст текстового блока не обновляется до «Готово!».
Как заставить его работать?
NotificationObject, полученный из INotifyProperyChanged. – tesicg
Он может реализовать его, тем самым позволяя использовать члены и функции INotifyPropertyChanged, но вы все равно должны явно инициировать уведомление. – Yoav