c# - WPF 的最佳实践 - 每个 GUI 元素都需要绑定(bind)吗?

标签 c# wpf mvvm

我正在努力理解 WPF 中绑定(bind)的真正好处。

我有一个带有大文本框的应用程序,设计用于接收数百个字符的用户输入。我已将它绑定(bind)到我的 ViewModel 中的“文本”字符串。这工作正常。

我还有一个内容为“提交”的按钮。我需要改变这个按钮的内容一次或两次,所以我在后面的窗口代码中的点击事件方法中进行。当然,我可以将文本绑定(bind)到 ViewModel,但这真的值得吗?

一切都应该有约束力吗?如果我需要显示 MessageBox 怎么办?这将需要 onclick 中的一些逻辑。

应该点击事件我如下:

private void button_Login_Click(object sender, RoutedEventArgs e)
{
   viewModel.DoSomething();
}

..所有东西都交给 ViewModel?

我知道这是一个普遍的问题,但我已尽力提出直接、可回答的问题。

最佳答案

UI 问题在您的代码隐藏中非常好。

业务问题应该存在于您的 ViewModel 中。它们公开的命令和信息应该绑定(bind)到 UI 中的元素。

由于根据按钮应该做什么来更改按钮中的文本是 UI 问题,因此将按钮的文本绑定(bind)到您的 ViewModel 将毫无意义。

关于c# - WPF 的最佳实践 - 每个 GUI 元素都需要绑定(bind)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109603/

相关文章:

c# - FSK 解调 - 解析日本 EWS 数据

c# - 用于测量单位的 wpf 字符串格式 c#

c# - 我的命令触发后如何使用 MVVM 清除我的文本框

c# - 使用 MVVM 的 MahApps 消息框

c# - 是否有 C# 方法重载参数排序约定?

C# - EF 6 抽象导航属性

C# - 关于类和内存

c# - 异常加载 CEFSHARP.CORE.DLL

c# - System.Windows.Interactivity 必须在主项目中引用

wpf - 刷 MVVM 绑定(bind)不给命名颜色