안녕 내 응용 프로그램에서 일부 텍스트 상자의 유효성을 검사해야합니다. 나는 유효성 검사 규칙 "DataErrorValidationRule"을 사용하기로 결정했다. 그래서 제 수업에서 IDataErrorInfo 인터페이스를 구현하고 적절한 기능을 작성했습니다. 내 XAML 코드에서 나는 텍스트 상자에 바인딩과 유효성 검사 규칙을 추가 한이 텍스트 상자의wpf - validation - 툴팁을 표시하고 "실행"버튼을 비활성화하는 방법
<TextBox x:Name="txtName" Grid.Column="3" Grid.Row="1" TextAlignment="Center" >
<TextBox.Text>
<Binding Path="Name" >
<Binding.ValidationRules>
<DataErrorValidationRule></DataErrorValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
검증은 OK입니다 - 나는 데이터가 잘못되면 빨간색 프레임이 텍스트 상자에 나타납니다 의미한다. 그러나 내가해야 할 일은 해당 텍스트 상자에 툴팁을 표시하는 것이지만 더 중요한 것은 텍스트 상자에 잘못된 데이터가있는 경우 "실행"버튼을 비활성화해야한다는 것입니다. taht를하는 가장 좋은 방법은 무엇입니까 ??
EDIT 첫 번째 문제는 해결되었지만 나는 다른 문제가 있습니다. 내 단추의 유효성을 검사하려면 MultiBindings를 사용해야합니다. 그
public class Converters : IMultiValueConverter
{
#region IMultiValueConverter Members
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(values !=null && values.Length > 0)
{
if (values.Cast<type>().Count(val => val) > 0)
return false;
return true;
}
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
#endregion
}
그러나 나는이 변환기에서 InvalidCastException이 얻을처럼 그
<Button x:Name="btnArrange" Grid.Column="0" Content="Rozmieść" Click="btnArrange_Click" >
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Value="False">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource BindingConverter}">
<Binding ElementName="txtName" Path="Validation.HasError" />
<Binding ElementName="txtSurname" Path="Validation.HasError"/>
<Binding ElementName="txtAddress" Path="Validation.HasError"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
내 변환기 같은 내가 한 STH 보인다. 이 경우 적절한 캐스트는 무엇입니까? HasError가 bool 유형 인 것처럼 thoght하므로 bool로 캐스팅해야합니다.
"유형"이란 무엇을 의미합니까? "if (values.Cast() .Any (val => val))"로 바꾸십시오. " –
vorrtex