Just 4 fun 我正在开发一个小的 RegEx 替换工具。该工具由输入字符串、搜索表达式(文本框的正则表达式搜索)和替换字符串(由文本框替换)组成。我还实现了一个预览标签。预览会根据我的文本框中每个更改的文本进行更新。
我想添加对我的正则表达式搜索表达式的验证。如果 RegEx 字符串无效,我想在文本框的末尾添加一个红色图标。我知道如何在旧的 winform 中做到这一点,但我想在 MVVM 中实现它
此时我的 ViewModel 是这样的:
private string _searchExpression;
public string SearchExpression
{
get { return _searchExpression; }
set
{
if (value != _searchExpression)
{
_searchExpression = value;
OnPropertyChanged("SearchExpression");
OnPropertyChanged("Preview");
}
}
}
private string _replaceExpression;
public string ReplaceExpression
{
get { return _replaceExpression; }
set
{
if (value != _replaceExpression)
{
_replaceExpression = value;
OnPropertyChanged("ReplaceExpression");
OnPropertyChanged("Preview");
}
}
}
public string Preview
{
get
{
if (SelectedFile != null && SearchExpression != null && ReplaceExpression != null)
try
{
return _renamer.Rename(SelectedFile.ToString(), SearchExpression, ReplaceExpression);
}
catch (Exception)
{
return string.Empty;
}
else
return string.Empty;
}
}
首先,我将在我的业务对象_renamer 中创建一个验证方法。接下来是什么?我应该在 ViewModel 中实现什么?
您还知道如何验证正则表达式。此刻,我尝试创建它并在错误时捕获它。是否可以在创建之前对其进行验证?
最佳答案
在你的 ViewModel 中实现 IDataErrorInfo 就可以了。
要查看验证结果,您还必须在您拥有的 xaml 中将绑定(bind)的 NotifyOnDataErrors 属性设置为 True。
关于c# - 如何使用 MVVM 验证字符串/正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11576291/