2009-10-13 4 views
2

У меня проблема с WPF с проверкой.
У меня есть пользовательский элемент управления, который имеет несколько текстовых полей, которые привязаны к datamodel.
Проверка выполняется с помощью IDataErrorInfo.Проверка правильности данных в WPF

Я хочу, чтобы проверка была инициирована только тогда, когда пользователь нажимает кнопку «Отправить данные», поэтому я использовал UpdateSourceTrigger="Explicit" со связыванием всех этих текстовых полей.

Все работает нормально, и проверка выполняется только тогда, когда пользователь нажимает кнопку, где я обновляю источники данных.

Но этот пользовательский элемент управления может быть скрыт или показан, а когда я изменил видимость с дисплея/на скрытый, а затем вернулся к отображению, активируется проверка.

Есть ли способ контролировать валидацию на этом этапе?

+0

Можете ли вы предоставить код, который фактически обновляет источник данных, и XAML/код, который изменяет видимость пользовательского элемента управления? Есть ли вероятность, что изменение видимости непреднамеренно вызывает код обновления? – rdeetz

+0

+0

Можете ли вы показать нам xaml для кнопки? – Phil

ответ

0

Это код, который я использую

Связывание с текстовым полем

<TextBox 
     AutomationProperties.AutomationId="StreetNameTextBoxId" 
     Height="20" Margin="0,0,5,0" FontSize="12" Name="_streetNameText" 
     AcceptsReturn="False" AcceptsTab="False" Focusable="True" 
     Text="{Binding ElementName=_this, Path=SearchParameters.EnteredAddress, UpdateSourceTrigger=Explicit}"> 

код, который выполняющем проверку и поиск (который связан с щелчком кнопки под названием «Поиск»)

private void ExecuteSearch() { 
     _streetNameText.UpdateDataSource(); 
     if (ViewModel.CustomerSpecification.IsValid()) 
      PerformActionInBackground(delegate{PerformSearch();}); 
    } 
Смежные вопросы