0
<Border Grid.Row="1" Background="Gray" Padding="7">
  <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,30,0">
    <optimumScheduler:LookUpOKButton Grid.Row="1" Content="OK" HorizontalAlignment="Center" Padding="20,0,20,0" Margin="0,0,20,0"/>
    <optimumScheduler:LookUpCancelButton Grid.Row="1" Content="Cancel" HorizontalAlignment="Center" Padding="20,0,20,0"/>

エントリー条件を付ける必要があります。OKボタンを調整する必要があります。ユーザーが患者、医師/セラピスト、部門のいずれも入力しない場合は、[OK] ボタンを無効にするか、入力を許可しないようにします。

ここで定義されています。それらの中の一つ。件名にエントリが必要であることをどのようにコーディングしますか

public static string FormatAppointmentFormCaption(bool allDay, string subject, bool readOnly)
{
    string format = allDay ? "Event - {0}" : "Appt Editor - {0}";
    string text = subject;
    if (string.IsNullOrEmpty(text))
         text = "Untitled";
    text = String.Format(CultureInfo.InvariantCulture, format, text);
    if (readOnly)
         text += " [Read only]";
    return text;
}
4

2 に答える 2

1

IDataErrorInfoインターフェイスを使用し、エントリのプロパティでIsEnabledボタンのプロパティをトリガーすることをお勧めします。Validation.HasError

たとえば、ViewModel は次のようになります。

public class UserEntry: IDataErrorInfo
{
    public string UserType{get;set;}

    string IDataErrorInfo.this[string propertyName]
    {
        get
        {
            if(propertyName=="UserType")
            {
                // This is greatly simplified -- your validation may be different
                if(UserType != "Patient" || UserType != "Doctor" || UserType != "Department")
                {
                    return "Entry must be either Patient, Doctor, or Department.";
                }
            }
            return null;
        }
    }

    string IDataErrorInfo.Error
    {
        get
        {
            return null; // You can implement this if you like
        }
    }
}

また、ビューには次のような XAML が含まれている場合があります。

<TextBox Name="_userType"
         Text="{Binding UserType, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}" />

<Button Command="{Binding OKCommand}"
        Name="OK">
  <Button.Style>
    <Style TargetType="Button">
      <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=_userType, Path=(Validation.HasError), Mode=OneWay}"
                      Value="False">
          <Setter Property="IsEnabled"
                  Value="True" />
        </DataTrigger>
        <DataTrigger Binding="{Binding ElementName=_userType, Path=(Validation.HasError), Mode=OneWay}"
                      Value="True">
          <Setter Property="IsEnabled"
                  Value="False" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Button.Style>
</Button>
于 2013-10-03T21:57:21.153 に答える
0

このリンクをチェックしてください。当時とてもお世話になりました!

ICommand の実装

を使用しても達成できない場合はICommandifステートメントを使用して要素のIsEnabledプロパティを false に設定します。

if(String.IsNullOrEmpty(Patient) || String.IsNullOrEmpty(Doctor) || String.IsNullOrEmpty(Therapist) || String.IsNullOrEmpty(DEpartment))
{
    yourElement.IsEnabled = false
}

PatientDoctorTherapistおよびが文字列プロパティであると仮定しDEpartmentます (つまり、TextBox.Text、Label.Content など...)。

于 2013-10-03T21:21:53.023 に答える