【发布时间】:2018-05-17 11:47:30
【问题描述】:
我有一个模型中需要的属性名称。然后在虚拟机中我有一个访问模型之一的名称属性。在我看来,我将一个文本框与 VM 的 Name 属性绑定。但是文本框为空时不会变红。我确实得到了错误:字段名称是必需的。但是文本框再一次没有变红。请帮忙
这是模型:
public class Task : BasicAuditTrail
{
[Required]
[MaxLength(256)]
public string Name { get; set; }
}
这是虚拟机:
public class TaskManagerViewModel : ViewModelBase, ITaskManagerViewModel
{
public Task CurrentTask => taskManager.CurrentTask;
public string Name
{
get
{
return CurrentTask.Name;
}
set
{
CurrentTask.Name = value;
IsDirty = true;
RaisePropertyChanged();
}
}
观点:
<TextBox Grid.Row="0" Grid.Column="3" Name="Name" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />
【问题讨论】:
-
为什么不直接将CurrentTask.Name绑定到TextBox
-
您可以订阅 CurrentTask 的 PropertyChanged 事件并在那里更改 IsDirty 属性
-
你试过 Rachel 的那个吗?
-
有什么问题?不是属性改变调用的方法吗?