Ich habe drei Kontrollkästchen, die ihre eigene Fehlerprüfung haben, ob sie aktiviert ist gültig, aber ich möchte auch erzwingen, dass mindestens eine aktiviert werden muss, bevor Sie fortfahren. Ich bin derzeit mit IDataErrorInfo für die einzelnen Fehlerprüfung und habe versucht, mit BindingGroups zu überprüfen, dass mindestens eine mit keinem Erfolg überprüft wird.
Hier ist die XAML,
<StackPanel Orientation="Horizontal" Margin="5,2">
<Label Content="Checkboxes:" Width="100" HorizontalContentAlignment="Right"/>
<CheckBox Content="One" Margin="0,5">
<CheckBox.IsChecked>
<Binding Path="One" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<DataErrorValidationRule />
</Binding.ValidationRules>
</Binding>
</CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="Two" Margin="5,5">
<CheckBox.IsChecked>
<Binding Path="Two" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<DataErrorValidationRule />
</Binding.ValidationRules>
</Binding>
</CheckBox.IsChecked>
</CheckBox>
<CheckBox Content="Three" Margin="0,5">
<CheckBox.IsChecked>
<Binding Path="Tree" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<DataErrorValidationRule />
</Binding.ValidationRules>
</Binding>
</CheckBox.IsChecked>
</CheckBox>
</StackPanel>
Und der Fehlerprüfungscode hinter
public string this[string property]
{
get {
string result = null;
switch (property) {
case "One":
{
if (One) {
if (CheckValid(One)) {
result = "Invalid Entry";
}
}
}
break;
case "Two":
{
if (Two) {
if (CheckValid(Two)) {
result = "Invalid entry";
}
}
}
break;
case "Three":
{
if (Three) {
if (CheckValid(Three)) {
result = "Invalid entry"
}
}
}
break;
}
return result;
}
Haben Sie einen Vorschlag, wie ich die Kontrollkästchen dazu bringen kann, eine Fehlermeldung anzuzeigen, wenn mindestens eines nicht ausgewählt ist?