我需要將綁定值發送到ValidationRule
。我正在使用DependencyObject
,但其值始終爲null
。ValidationRule和DependencyObject
這裏是我的DependencyObject
public class MyDependencyObject : DependencyObject
{
public string BindingValue
{
get { return (string)GetValue(BindingValueProperty); }
set { SetValue(BindingValueProperty, value); }
}
public static readonly DependencyProperty BindingValueProperty =
DependencyProperty.Register("BindingValue", typeof(string), typeof(MyDependencyObject), new UIPropertyMetadata(null));
}
這裏是我的ValidationRule
:
public class MyTextBoxValidationRule : ValidationRule
{
private MyDependencyObject _TxtVal;
public MyDependencyObject TxtVal
{
get { return _TxtVal; }
set { _TxtVal = value; }
}
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
//Validation Logic
}
}
這裏是XAML
:
<TextBox >
<TextBox.Text>
<Binding Path="DataUserTypes"
NotifyOnValidationError="True"
ValidatesOnDataErrors="True"
Mode="TwoWay"
UpdateSourceTrigger="PropertyChanged"
NotifyOnSourceUpdated="True"
NotifyOnTargetUpdated="True"
Delay="100">
<Binding.ValidationRules>
<local:MyTextBoxValidationRule ValidatesOnTargetUpdated="True" >
<local:MyTextBoxValidationRule.TxtVal >
<local:MyDependencyObject
TxtVal="{Binding Path=ValidateValue}" />
</local:MyTextBoxValidationRule.TxtVal>
</local:MyTextBoxValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
當我通過驗證的MyTextBoxValidationRule
TxtVal.BindingValue
一步總是null
。我不知道爲什麼
編輯:
我改變DisplayValue
到DataUserTypes
因爲似乎有一些混亂。
<Binding Path="DataUserTypes"
這是文本框的Text值的綁定。我需要根據酒店ValidateValue
驗證DataUserTypes
。我試圖用DependencyObject
TxtVal
來做到這一點。
我也修復了一個複製和粘貼類型。有一個叫TextValID
的字段應該是TxtVal
。對於那個很抱歉。
'<地方:MyDependencyObject TEXTVALID = 「{綁定路徑= ValidateValue}」/>' - 什麼是TextValID這裏? – mechanic
@ mechanic對不起,這是一個複製和粘貼錯字。請參閱更新的編輯 – Xaphann