2017-09-22 6 views
1

IDataErrorInfo으로 간단한 유효성 검사를 구현하려고하는데 문제가 발생했습니다. IDataErrorInfo 인덱서가 호출되지 않습니다. 지정된 범위의 숫자 값에 대해 TextBox을 확인했지만 형식 유효성 검사가 올바로 작동하지만 범위 유효성 검사가 작동하지 않습니다. C#을 코드 :C# WPF IDataErrorInfo 인덱서가 호출되지 않습니다

public interface IDataErrorInfo 
{ 
    string Error { get; } 
    string this[string columnName] { get; } 
} 

public class Bounds:IDataErrorInfo 
{ 
    int lbw = 0; 

    public int LBW 
    { 
     get { return lbw; } 
     set { lbw = value; } 
    } 


    public string this[string columnname] 
    { 
     get 
     { 
      string error = String.Empty; 
      switch(columnname) 
      { 
       case "LBW": 
        if (0 >= lbw || 500 < lbw) 
        { 
         error = "out of range"; 
        } 
        break; 
      } 
      return error; 
     } 
    } 
    public string Error 
    { 
     get { return null; } 
    } 
} 

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     Bounds bounds = new Bounds(rolletBoundLbwBox); 
     rolletBoundGrid.DataContext = bounds; 

    } 
} 

XAML 코드 :

<Grid x:Name="rolletBoundGrid" Background="#FFE5E5E5"> 
     <TextBox x:Name="rolletBoundLbwBox" HorizontalAlignment="Left" Height="26" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="164,10,0,0" Text="{Binding LBW, NotifyOnValidationError=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/> 
</Grid> 

당신이 문제의 원인을 볼 수 있나요?

답변

1

내장System.ComponentModel.IDataErrorInfo 인터페이스를 구현하고 있습니까?

public class Bounds: System.ComponentModel.IDataErrorInfo 
... 

"IDataErrorInfo"라는 고유 한 사용자 지정 인터페이스를 구현하면 작동하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. –