我对 MVVM 很陌生,而且我一直在构建我的 ViewModel。我有一个包含 ICommand
的 ViewModel ,然后通过命令按钮将其绑定(bind)到我的 View 中。 ICommand
导致在我的 ViewModel 上调用一个过程,然后调用一个更大的慢过程。当这个过程发生时,我想做一个控制/UIElement
的可见性在程序完成后变为可见然后隐藏(我打算绑定(bind)一个标签并不确定进度条的可见性)
例如,在我的 View 模型中,我有
public void calledFromCommandButton() {
RaisePropertyChange("Starting");
superLongProcedure();
RaisePropertyChange("Finished");
}
不过,这感觉有点傻,不得不提出 2 个不同的属性更改,因此,我认为我做错了。我想我可以通过一个属性更改和一个转换器来做到这一点?
那么,将 UIElement 可见性绑定(bind)到属性更改事件的正确方法是什么?
谢谢
托马斯
最佳答案
我建议使用单个 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/>
关于c# - 将控件/UIElement 可见性正确且正确地绑定(bind)到 Property MVVM C# WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012040/