powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: валидация ввода с помощью ExceptionValidationRule
5 сообщений из 5, страница 1 из 1
WPF: валидация ввода с помощью ExceptionValidationRule
    #38791072
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я запустил код проекта, загруженного из интернет и перенёс его в свой проект,
но работает он у меня и в загруженном примере по разному.
Помогите найти разницу, то есть разницы по моему нет, она где-то глубже, не знаю где.

Вот мой класс - источник данных для формы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MWS.Mrac.test {
  public class Customer_B {
    private string _name;
    public Customer_B( string p1 ) {
      _name = p1;
      }
    public string CustName {
      get {
        return _name;
        }
      set {
        _name = value;
        if( String.IsNullOrEmpty( value ) ) {
          throw new ApplicationException( "Customer name is mandatory." );
          }
        }
      }
    }
  }



а это полностью текст XAML

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Window x:Class="MWS.Mrac.Win_Test_ValidationException"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Win_Test_ValidationException" Height="300" Width="300">
  <Grid>

    <TextBox  Name="text_ex3"
              Height="36" HorizontalAlignment="Left" Margin="23,114,0,0" VerticalAlignment="Top" Width="189" >
      <TextBox.Text>
        <Binding Path="CustName"  UpdateSourceTrigger="PropertyChanged" >
          <Binding.ValidationRules>
            <ExceptionValidationRule />
          </Binding.ValidationRules>
        </Binding>
      </TextBox.Text>
    </TextBox>
    
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="38,205,0,0" Name="button1" VerticalAlignment="Top" Width="75" />

      </Grid>
</Window>



Текст C# тоже вроде несложный
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

using MWS.Mrac.test;

namespace MWS.Mrac {
  public partial class Win_Test_ValidationException: Window {
    public Win_Test_ValidationException( ) {
      InitializeComponent( );
      Customer_B c2 = new Customer_B( "bbBBBBBBBBBBBBB" );
      this.DataContext = c2;
      }
    }



но вот у меня этот код работает не так как в исходном примере.
Привожу скриншот, получаемый при запуске кода чере дебаггер из VS2010
если закрыть окно ApplicationException то всё работает как надо.
Но разница в том, что в исходном проекте это окно не возникает,
то естm Exception где то обрабатывется.
А у меня нет.

Я ещё сделал эксперимент.
Если запускать задачу не по F5, а запускать готовый Debug-exe модуль,
то и у меня всё работает отлично.

А при запуске из VS2010 лезет ненужное окно.

Оба проекта собраны в одной той же студии, в чём разница, какие настройки можно изменить?
...
Рейтинг: 0 / 0
WPF: валидация ввода с помощью ExceptionValidationRule
    #38791074
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WPF: валидация ввода с помощью ExceptionValidationRule
    #38791661
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть дополнение
К сожалению на предыдущй скриншот пришлось образать - был слишком тяжёлый.
А окно сообщения забавное
В образанной части внизу справа отсутствуют привычные кнопочки.
По моему я раньше такого не видел.
Привожу скрншот
...
Рейтинг: 0 / 0
WPF: валидация ввода с помощью ExceptionValidationRule
    #38791719
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Володимир,

в чём проблема? вы сами возбуждаете это исключение и жалуйтесь на ошибку.
там же чёрным по белом написано:

if( String.IsNullOrEmpty( value ) ) { throw new ApplicationException( "Customer name is mandatory." ); }
в переводе на русские, сиё значит, если строка пустая или равна NULL, тогда возбудить ошибку класса ApplicationException
...
Рейтинг: 0 / 0
WPF: валидация ввода с помощью ExceptionValidationRule
    #38792605
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesВолодимир,

в чём проблема? вы сами возбуждаете это исключение и жалуйтесь на ошибку.
там же чёрным по белом написано:

if( String.IsNullOrEmpty( value ) ) { throw new ApplicationException( "Customer name is mandatory." ); }
в переводе на русские, сиё значит, если строка пустая или равна NULL, тогда возбудить ошибку класса ApplicationException

Скорее уж, это странности Visual Studio, но я не искал способа их устранения, а просто нажимал F5 после таких сообщений (бывает то же самое, если catch стоит после await по стеку вызовов, и ещё много когда). ExceptionValidationRule - это типа catch, только в XAML'е.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF: валидация ввода с помощью ExceptionValidationRule
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]