在研究Josh Smith撰写的经典文章Regex Validation in WPF时, 我有一个错误(VS 2010):
错误134必须绑定TextBox的Text属性才能使RegexValidator验证它。
抛出
<TextBox
Text="{Binding Path=DateString, UpdateSourceTrigger=PropertyChanged}"
jas:RegexValidator.RegexText="{x:Static local:DateFormatRegex.DateRegex}"
jas:RegexValidator.ErrorMessage="Invalid date format."
/>
在我看来文本被绑定。怎么了? (我不知道:()。
非常感谢任何帮助。
TIA
答案 0 :(得分:1)
您看到错误,因为您尚未为XAML设计器设置设计时DataContext。
您可以在XAML中执行此操作。将其添加到UserControl / Window属性:
xmlns:local="clr-namespace:MyProjectName.ViewModels"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d:DataContext="{d:DesignInstance Type=local:MainViewModel, IsDesignTimeCreatable=True}"
(替换您的项目名称,ViewModel名称等)
如果您的ViewModel没有无参数构造函数,您可以从视图的代码隐藏创建一个实例,例如:
public MyControl()
{
DataContext = new MyViewModel("a parameter");
}
显然这有其局限性,因为应用程序没有执行。