0

我对 MVVM 很陌生,而且我一直在构建我的 ViewModel。我有一个包含 的 ViewModel ,ICommand然后通过命令按钮将其绑定到我的视图中。这ICommand导致在我的 ViewModel 上调用一个过程,然后调用一个更大的慢速过程。在此过程发生时,我想让 control/UIElement的可见性变为可见,然后在过程完成后隐藏(我打算绑定标签并不确定进度条的可见性)

例如,在我的视图模型中,我有

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

}

不过,这感觉有点傻,不得不提出 2 个不同的属性更改,因此,我认为我做错了。我想我可以通过一个属性更改和一个转换器来做到这一点?

那么,将 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 回答