2010-06-16 2 views
3

В моем приложении WPF Я использую следующий код XAML: ...Проблема с проверкой и MultiBinding

<TextBox 
services:TextBoxService.IsFocused="{Binding Path=IsSelected, Mode=OneWay}" 
FocusVisualStyle="{x:Null}"> 
    <MultiBinding 
     Converter="{StaticResource mconv_operableToString}" 
     UpdateSourceTrigger="PropertyChanged"> 
      <Binding 
       Path="Value" 
       Mode="TwoWay" 
       NotifyOnValidationError="True" /> 
      <Binding 
       RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" 
       Path="DataContext.Status" 
       Mode="OneWay" /> 
    </MultiBinding> 

Вид модель класс, который первый вяжущий использует реализует IDataErrorInfo для целей проверки. Проблема в том, что, хотя ошибка попадает в средство настройки свойств, пользовательский интерфейс не замечает этого. У меня есть стиль, определенный с шаблоном ошибки, который должен применяться, когда в текстовом поле возникает какая-либо ошибка. Я полагаю, что, возможно, этот сценарий не разрешен с помощью множественной привязки, потому что, когда я использую одиночную привязку, все работает нормально.

Заранее спасибо.

+0

Вы забыли '' wrapping Multiplinding. – Amsakanna

+0

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

ответ

3

Мне кажется, что никто не знает ответа на этот вопрос, но я полагаю, что этот сценарий просто не работает. Я постараюсь ответить на него, если кому-то это понадобится. Я попытался привязать мой класс View к моему представлению Model, который реализует IDataErrorInfo, в xaml я указал конвертер, и хотя все сработало нормально, ошибки просто не отображались в пользовательском интерфейсе. Итак, я удалил конвертер из привязки и реализовал эту логику внутри View Model, и теперь voila все работает нормально.

Смежные вопросы