[英]Validation rule not being called
我的XAML中有以下代碼:
<ItemsControl ItemsSource="{Binding Dimensions}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition MinWidth="100" MaxWidth="300" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Content="Dimension x"
Target="{Binding ElementName=DimTextBox}" />
<TextBox Grid.Column="1" Name="DimTextBox" >
<Binding Path="/" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<valid:DataSetDimensionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
其中Dimensions是可觀察的字符串集合。 似乎綁定成功,我得到了預期數量的標簽和文本框,並且這些文本框包含默認值。 但是,當我在文本框中更改某些內容時,不會調用我的驗證規則。
我知道這可能很簡單,但我被困住了。 救命?
嘗試這個...
<TextBox Grid.Column="1" Name="DimTextBox" >
<Binding ValidatesOnExceptions="True" Path="/" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<valid:DataSetDimensionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
編輯:如果上述方法不起作用,請嘗試驗證規則上的以下屬性: http : //msdn.microsoft.com/zh-cn/library/cc647541.aspx
我認為您只需要在綁定元素上設置ValidatesOnDataErrors =“ True”即可,如下所示。
<TextBox Grid.Column="1" Name="DimTextBox" >
<Binding Path="/" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<valid:DataSetDimensionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
我不確定實際上是什么問題,但是當我將我的Dimensions更新為DimensionView的ObservableCollection時,其中DimensionView是我自己的包含Label和Value的類。 碼:
<Label Grid.Column="0"
Content="{Binding Label}"
Target="{Binding ElementName=DimTextBox}" />
<TextBox Grid.Column="1" Name="DimTextBox" >
<Binding Path="Value" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<valid:DataSetDimensionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
我想也許只是不喜歡Path =“ /”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.