0

私は MVVM を初めて使用し、ViewModel を構築してきました。を含む ViewModel がありICommand、コマンド ボタンによって View にバインドされます。これICommandにより、ビューモデルでプロシージャが呼び出され、さらに大きな遅いプロシージャが呼び出されます。この手順が行われている間、 control/UIElementの可視性を可視化し、手順が終了した後に非表示にしたいと考えています (ラベルをバインドし、進行状況バーの可視性を不確定にするつもりです)。

たとえば、私のビューモデルでは

public void calledFromCommandButton() {
RaisePropertyChange("Starting");
superLongProcedure();
RaisePropertyChange("Finished");

}

ただし、これは少しばかげているように感じます.2つの異なるプロパティの変更を発生させる必要があるため、すべて間違っていると思います. コンバーターと一緒に 1 つのプロパティ変更でできると思いますか?

では、UIElement の可視性をプロパティ変更イベントにバインドする適切で正しい方法は何ですか?

ありがとうトーマス

4

1 に答える 1

6

単一のbooleanプロパティ (IsWorking など) を使用してから、 を使用しBooleanToVisibilityConverterてボタンの表示と非表示を切り替えることをお勧めします。したがって、次のようになります。

<Window ...>
    <Window.Resources>
       <BooleanToVisibilityConverter x:Key="TrueToVisibleConverter"/>
    </Window.Resources>
     ...
    <Button x:Name="CancelButton" Content="Cancel" Visiblity="{Binding IsWorking, Converter={StaticResource TrueToVisibleConverter}}"/>
     ...
</Window/>
于 2013-06-09T17:14:16.877 に答える