我是 WPF 和 MVVM 的初学者。我在项目的窗口上有某些控件。例如,我的窗口中有一个文本框。我正在使用 MVVM 模式,在这里我想从 View 模型更改文本框的可见属性。 另一件事是,我想根据某些条件更改 View 模型中文本框的可见性。
好吧,我在谷歌上搜索了一下,谷歌给了我一些建议,这些建议都是不同的解决方案,我完全困惑了。
猜猜有人可以帮我解决这个问题。
我知道这对于 WPF MVVM 专家来说是小菜一碟,但由于我正在尝试学习这些东西,所以我需要一些代码作为示例。
谢谢
最佳答案
由于这是 MVVM,您不想更改文本框的可见性您实际上想要禁用一些选项..然后 - 该选项是启用还是禁用应反射(reflect)您的文本框的可见性。
所以基本上您需要 ViewModel 中的 Property
,例如:
public bool CanMyPropertyBeChanged {get; set;}
您可以更改哪些内容(当然您可能应该 implement INotifyPropertyChanged 如果您还没有)...
并通过转换器将文本框的可见性绑定(bind)到此属性:
<TextBox Visibility="{Binding CanMyPropertyBeChanged, Converter={StaticResource boolToVis}}" />
您可以使用内置的 BooleanToVisibilityConverter 为此:
<BooleanToVisibilityConverter x:Key="boolToVis" />
关于c# - 如何从 View 模型(WPF、MVVM)更改文本框的可见属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545703/