IDataErrorInfo Not calling Item on property change.

Topics: Conventions
Oct 1, 2014 at 12:20 PM
I have to start by saying that this framework is awesome! I love using it. Great job!

I'm having an issue with IDataErrorInfo Item not being called when using Name convention binding on a context view.

I have a Button.Detail view like this:
 <ContentControl cal:View.Model="{Binding ActiveItem}"
                        cal:View.Context="Detail" />
And my Detail view has these controls
<TextBox x:Name="Button_Path"
                     Width="218"
                     Margin="0,0,4,0"
                     VerticalAlignment="Center" />

  <TextBox Grid.Column="1"
                 Grid.Row="1"
                 Margin="3"
                 Text="{Binding Button.Name, Mode=TwoWay, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"
                 VerticalAlignment="Center"
                 Width="70"
                 HorizontalAlignment="Left" />
Changing either one will cause PropertyChanged to fire but "Item" is only called for "Button.Name" but not for Button.Path.

This is my "Item" property in the VM
    Default Public ReadOnly Property Item(columnName As String) As String Implements IDataErrorInfo.Item
        Get
            Dim __ValidationResults = SelfValidate()
            If __ValidationResults Is Nothing Then
                Return String.Empty
            End If
            Dim __ColumnResults = __ValidationResults.Errors.FirstOrDefault(Function(x) String.Compare(x.PropertyName, columnName, True) = 0)
            Return If(__ColumnResults IsNot Nothing, __ColumnResults.ErrorMessage, String.Empty)
        End Get

    End Property
I have used the name convention binding many times with validation and have never had an issue. This is the first time I've tried it with a "Context" view. I'm sure it's something I'm doing wrong. Any ideas?