gpt4 book ai didi

c# - 是否可以在绑定(bind)功能执行之前执行辅助方法?

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:27 25 4
gpt4 key购买 nike

我想在绑定(bind)用户输入文本框的数据之前检查业务规则?在将数据绑定(bind)到模型之前,我需要确保它满足特定条件。如果我可以在绑定(bind)发生之前执行一个方法,这将很容易做到。我有办法做到这一点吗?

最佳答案

你可以实现ValidationRule :

public class CustomValidationRule : ValidationRule
{
private static bool IsValid(string value)
{
// implement you business rule checking logic here
// if valid
// return true;
// else
// return fase;
}

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
var val = (string)value;
if(IsValid(val))
{
return ValidationResult.ValidResult;
}
else
{
return new ValidationResult(false, "Value is not valid");
}
}
}

并在您的绑定(bind)中使用它:

<TextBox>
<TextBox.Text>
<Binding Path="ViewModelProperty" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validation:CustomValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>

validation 是定义了 CustomValidationRule 的命名空间的 XML 命名空间别名(添加 xmlns:validation="clr-namespace:NAMESPACE_NAME_HERE"到您的 XAML)。

关于c# - 是否可以在绑定(bind)功能执行之前执行辅助方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com