我有一個自定義驗證一個WPF數據網格來驗證E-Mail地址的進入火災。驗證在用戶編輯單元格的文本以及按照預期觸發我的自定義驗證時起作用。無法獲得WPF的驗證,當用戶添加新行
然而,當用戶通過點擊通過CanUserAddRows屬性提供的空單元格添加一個新行,驗證不」火。在後面我的代碼,我有我的自定義的驗證,這都將根據是否有任何錯誤,在一個保存buttons'enabled狀態的處理程序。
我怎樣才能得到驗證射擊在一個新行插入?
<DataGrid AutoGenerateColumns="False" Margin="0,1,2,-1" ItemsSource="{Binding EmailRecipients}" CanUserReorderColumns="False" CanUserAddRows="True" Name="emailAddressBindingGrid">
<DataGrid.Resources>
<Style x:Key="DataGridCellErrorStyle" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Email Address" Width="400" x:Name="emailAddressColumn" EditingElementStyle="{StaticResource DataGridCellErrorStyle}">
<DataGridTextColumn.Binding>
<Binding Path="ToAddress" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" NotifyOnValidationError="True" x:Name="emailAddressBinding">
<Binding.ValidationRules>
<Validators:EmailAddressValidator ErrorMessage="A valid email address is required." />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
// other columns
</DataGrid.Columns>
</DataGrid>
除了引用之外,還包括原始網站的鏈接,以便能夠找到更多詳細信息。我編輯了你的答案。 – t3chb0t
DataGridView是WinForms。我不知道是什麼事件這對應於WPF的DataGrid –
感謝t3chb0t。我已經接受你的編輯。 – RamyaN