1

ボタンの状態を判断するためにテキストを使用してきましたが、それが一般的に受け入れられているかどうかを知りたいですか?

アイテムのリストと「完了」ボタンを含むデータグリッド ビューがあります。ユーザーが完了ボタンをクリックすると、セルが緑色で強調表示され、完了したことを示します。

次に、ボタンのテキストを「元に戻す」に変更します。したがって、ユーザーが「緑」のセルをスクロールすると、ボタンのテキストが元に戻すに変わります。

そのテキストを使用して、ボタンがクリックされたときの動作を決定します。

これでよろしいですか?または、ある種の状態モニターを使用する必要がありますか?

4

2 に答える 2

0

多くの場合、私が好むパターンは、コントロールの論理状態を示すプライベート フィールドと、コントロール自体のプロパティを適切なタイミングで更新するプロパティを設定することです。コントロール自体のプロパティと対話する 1 つのポイントがあり、フィールドが常に有効な状態を表している場合、非 UI スレッド コードは、UI スレッドと同期する必要なく、コントロールの状態を変更できます。次の都合のよいときにコントロールを更新する保留中の要求があることを確認する必要があるだけです。

あなたの特定の例にはスレッド化の問題は含まれていないため、制御状態を論理状態から分離することによって提供されるスレッド化の容易さから実際には恩恵を受けませんが、マルチスレッドのサポートを必要とする場合と同じパターンを使用します。 't は、対処しなければならないさまざまなパターンの数を減らします。さらに、独自のフィールドを使用してコントロールが持つことができるさまざまな状態を表す場合、あいまいな状態や無効な状態を決して表さないようにすることができます。たとえば、コードの一部がボタンを「元に戻す」ではなく「元に戻す」に設定した場合、他のコードは「「元に戻す」ではないので保存する必要がある」と判断し、「そうではない」と判断するコードもあります。 tSaveさらに、追加の状態や表示を追加するのが難しい場合があります。たとえば、「元に戻す」ボタンに何の表示を追加したい場合があります。フィールドを使用して状態を追跡する場合、「保存」と「元に戻す」を区別するフィールドを乱すことなく、そのような機能を追加できる場合があります; または、別のフィールドを追加して、いつどの特定の操作を示す必要があるかを追跡します。元に戻すボタンが表示されるか、「ボタンテキストの更新」ルーチンで既存のフィールドを使用してそれを決定します。

于 2013-05-09T16:12:42.487 に答える
0

これはほとんど受け入れられないと思いますが、それでも悪いです。

ステータスを変数に格納することはそれほど手間がかからず、コードをより保守しやすくします (処理と GUI を混在させないでください)。

ボタンのテキストを何らかの形で変更する場合は、チェックも調整する必要があります。

また、これにより、GUI (複数のスレッドなど) の更新がはるかに簡単になります。

于 2013-04-30T11:57:38.947 に答える