हाय मुझे अपने एप्लिकेशन में कुछ टेक्स्टबॉक्स सत्यापित करने की आवश्यकता है। मुझे सत्यापन नियम "DataErrorValidationRule" का उपयोग करने का समर्थन किया गया। यही कारण है कि मेरी कक्षा में मैंने IDataErrorInfo इंटरफेस को कार्यान्वित किया और aproperiate कार्यों को लिखा। मेरी XAML कोड में मैं बक्सें को बाइंडिंग और सत्यापन नियमों जोड़ाwpf - सत्यापन - टूलटिप्स कैसे दिखाएं और "रन" बटन अक्षम करें
इस टेक्स्ट बॉक्स की<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>
मान्यता ठीक है - मैं लाल फ्रेम पाठ बॉक्स पर दिखाई देता है, तो डेटा गलत है मतलब है। हालांकि मुझे उस टेक्स्टबॉक्स पर टूलटिप दिखाने की ज़रूरत है, लेकिन यदि कोई टेक्स्टबॉक्स में गलत डेटा है तो मुझे "रन" बटन को अक्षम करना होगा। तह करने का सबसे अच्छा तरीका क्या है ??
EDIT पहली समस्या हल हो गई थी, लेकिन मेरे पास एक और है। मुझे अपने बटन को प्रमाणित करने के लिए मल्टीबिंडिंग का उपयोग करने की आवश्यकता है। कि
<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 की तरह है कि
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 मिलता लग रहा है। उस मामले में उचित कास्ट क्या है? मुझे लगता है जैसे हैसरर एक बूल प्रकार है इसलिए मुझे बूल डालना चाहिए।
इसका मतलब "प्रकार" क्या है? इसे "अगर (मान। कैस्ट() के साथ बदलें। कोई भी (वैल => वैल))" –
vorrtex