c# - 将控件/UIElement 可见性正确且正确地绑定(bind)到 Property MVVM C#​​ WPF

标签 c# wpf mvvm binding viewmodel

我对 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/

相关文章:

c# - 使用 LINQ to JSON 将 JSON 反序列化为字典

c# - Mysql 大量查询

WPF 文本淡入淡出效果

wpf - 创建自定义项目控件

wpf - 将 catel 与 3rd 方控件一起使用

c# - 将位图的特定矩形绘制到另一个位图中

c# - 递归打印树

c# - 如何在 XAML Canvas 中绘制随机/不规则线?

qt - 在 QtQuick 中应用 MVVM 模式

java - Zk:如何创建具有数据绑定(bind)交互的 "load on demand"树?