0
只是4個樂趣我正在開發一個小的RegEx替換工具。該工具由輸入字符串,搜索表達式(正則表達式搜索文本框)和替換字符串(由文本框替換)組成。我也實現了一個預覽標籤。預覽更新了我的文本框中每個文本的更改。如何使用MVVM驗證字符串/正則表達式?
我想補充我的正則表達式搜索表達式的驗證。如果RegEx字符串無效,我想在文本框的末尾添加一個紅色圖標。我知道該怎麼做,在舊的winform,但我想實現這MVVM
在這一刻我的視圖模型是這樣的:
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中實現什麼?
- 創建一個IsValid屬性並在Preview方法或SearchExpression的setter中對其進行評估?
- 通過對Refresh()方法和此Refresh()方法的簡單調用來替換所有OnPropertyChanged(「Preview」)我是否在使用IsValid屬性並且它的有效性是否爲預覽屬性?
- 使用轉換器?
- 其他解決方案?
也你知道如何驗證正則表達式。在這個時刻,我嘗試創建它並在錯誤的情況下捕獲它。創建它之前可以驗證它嗎?
+1,創建您必須創建的紅色圖標並將Validation.ErrorTemplate設置爲您的文本框 – blindmeis 2012-07-20 10:43:12