Nadal borykam się z walidacją w WPF.Wiązanie sprawdzania poprawności przy pierwszym obciążeniu
Mam niestandardową regułę sprawdzania poprawności, która wymaga pojawienia się tekstu w polu tekstowym, tj. Wymusza obowiązkowe ograniczenie pola.
<TextBox local:Masking.Mask="^[a-zA-Z0-9]*$" x:Name="CameraIdCodeTextBox" Grid.Row="1" Grid.Column="1">
<Binding Path="CameraIdCode" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True" ValidatesOnExceptions="True">
<Binding.ValidationRules>
<localValidation:RequiredFieldRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
Problem polega na tym, że po pierwszym załadowaniu okna nie ma tekstu w polu tekstowym (jak można się spodziewać). Ale właściwość Text jest powiązana z właściwością w ViewModel i jako taka uruchamia się Reguła sprawdzania poprawności, co oznacza, że wystąpił problem z Oknem - zanim użytkownik miał nawet możliwość naruszenia reguły biznesowej.
Czy to był problem, który został rozwiązany wcześniej? Nie mogłem tego pierwszy doświadczać. Jestem pewien, że to pułapka dla młodych graczy.
Czy możesz spróbować ... UpdateSourceTrigger = "LostFocus" –
Możesz być w stanie utworzyć grupę walidacji i włączyć ją tylko wtedy, gdy użytkownik po raz pierwszy wprowadzi zmianę w pewnym polu. –
@AngelWPF Próbowałem tego. Wciąż sprawdza poprawność początkowego powiązania podczas ładowania okna. – onefootswill