我的项目示例中有一个名为 ContainsValidationRule 的类。我在这个项目中有一个名为 MainWindowViewModel 的视图模型。代码看起来像:
namespace Sample
{
using System.Globalization;
using System.Linq;
using System.Windows.Controls;
public class ContainsValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
var result = MainWindowViewModel.CurrentInstance.Items.Any(x => x.ToLower(cultureInfo).Contains((value as string).ToLower(cultureInfo)));
return new ValidationResult(result, "No Reason");
}
}
}
它运作良好。但是,我不想将 MainViewViewModel 硬编码,而是将其作为参数传递给 Validate Method。所以我也可以将这个类用于其他 ViewModel。
如果有更好的解决方案,然后将 ViewModel 名称作为参数传递,请描述。