问题标签 [mvvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
32546 浏览

.net - 确保在 MVVM WPF 应用程序的 UI 线程上调用 OnPropertyChanged()

在我使用 MVVM 模式编写的 WPF 应用程序中,我有一个后台进程来做这件事,但需要从它获取状态更新到 UI。

我正在使用 MVVM 模式,因此我的 ViewModel 几乎不知道将模型呈现给用户的视图 (UI)。

假设我的 ViewModel 中有以下方法:

在我看来,我有一个 ListBox 绑定到List<string>ViewModel 的 Messages 属性 (a)。 通过调用 aOnPropertyChanged来完成接口的作用。INotifyPropertyChangedPropertyChangedEventHandler

我需要确保OnPropertyChanged在 UI 线程上调用它 - 我该怎么做?我尝试了以下方法:

然后将以下内容添加到OnPropertyChanged方法中:

但这没有用。有任何想法吗?

0 投票
2 回答
816 浏览

wpf - MVVM 与修改 View 的组件树的可能性之间是否存在不匹配?

阅读了有关Model-View-ViewModel 架构的所有 StackOverflow 条目以及网络上大多数现成的资源后,我得出的结论是,它是构建SOLID Silverlight 应用程序的事实标准。
我开始使用这种架构来计划我的下一个应用程序。应用程序的要求之一是构建或更改可视组件结构。例如,响应用户交互,我想以编程方式将编译时未知数量的矩形和椭圆附加到特定的画布或画布上。
我开始扭曲我的想法来应用 MVVM 模式,并思考负责附加新组件的代码应该去哪里。我得出的结论是,它不属于任何 MVVM 层,因此不可能在必须在运行时操作组件树的场景中应用此架构。
有没有办法在这些场景中仍然使用Model-View-ViewModel或者它仅限于使用固定的 View 组件结构?

0 投票
4 回答
1885 浏览

wpf - 如何在 MVVM 中构建 ViewModel 不违反单一职责原则?

罗伯特·马丁说:“改变班级的理由不应该不止一个”

让我们考虑绑定到视图的 ViewModel 类。ViewModel 有可能(甚至很可能)由彼此并不真正相关的属性组成。对于小视图,ViewModel 可能是相当一致的,但是当应用程序变得更加复杂时,ViewModel 会暴露数据,这些数据会因不同和不相关的原因而发生变化。

在 ViewModel 类的情况下,我们是否应该担心 SRP 原则?

0 投票
8 回答
85076 浏览

wpf - WPF MVVM 应用程序中的键盘事件?

如何在不使用代码隐藏的情况下处理 Keyboard.KeyDown 事件?我们正在尝试使用 MVVM 模式并避免在代码隐藏文件中编写事件处理程序。

0 投票
5 回答
3619 浏览

wpf - 我可以在 WPF/XAML 中获得强类型绑定吗?

使用MVVM模式,您可以将 DataContext 设置为特定的 ViewModel。现在有没有办法告诉 XAML DataContext 的类型,以便它验证我的绑定?

寻找类似 ASP.NET MVC 中的类型化视图数据。

0 投票
4 回答
6346 浏览

wpf - WPF MVVM 和单元测试

我一直在开发 WPF 应用程序,并且正在使用 ModelViewViewModel 设计模式。我有许多来自视图的事件,这些事件导致 ViewModel 活动。

从 UnitTest 中获取这些事件的合理方法是什么?例如,我想模拟 drop 事件。我真的不想建立一个存根视图,只是为了引发事件。

欢迎任何建议。

谢谢。

0 投票
1 回答
746 浏览

c# - 不是对的?

我很困惑。我有一个 Silverlight 项目,目前正在运行并显示来自我的模拟模型的服务器列表(我遵循 MVVM 模式)。

接口编码如下:

如您所见, CompletedEventArgs 将结果作为 IEnumerable 返回。

我遇到的问题是以<LicenseServer>这样一种方式定义的,即我可以用假数据存根它或从真实数据(ala ado.net 数据服务)中填充结果。

我创建了一个本地类 LicenseServer,但该服务总是返回不同类型的 LicenseServer。

我收到一个错误:

转换无法将“DataServiceOrderedQuery[LicenseMon.LMonServiceReference.License_Server]”类型的对象转换为“System.Data.Services.Client.DataServiceQuery`1[LicenseMon.Model.LicenseServer]”类型

我从服务参考中读取为 LicenseServer 的内容无法转换为我在模型类中定义的 LicenseServer

为什么我有麻烦?我不应该能够独立开发我的课程并能够在实时数据库和我内部生成的数据之间切换吗?我是以错误的方式接近这个吗?

任何代码示例、解释、链接等都是最有帮助的

0 投票
3 回答
1579 浏览

silverlight - Silverlight MVVM 链接模型和视图模型

MVVM 上有很多很好的例子,但我仍然很困惑。

假设您有一个 CustomerModel 和一个 CustomerViewModel。似乎 CustomerModel 上会有一个 Name 属性,而 CustomerViewModel 上会有一个。CustomerViewModel 上的设置器将设置 CustomerModel Name 属性,然后调用 OnPropertyChanged(PropName) 以便更新 UI。这真的正确吗?似乎 getter/setter 将被定义两次。如果您有一个具有 50 个属性的模型,那么这将变得非常乏味。

另外,假设我设置了一个 Qty 属性。ViewModel 更新模型。模型根据新的数量更新其 Value 属性。ViewModel 如何收到 Model 属性更改的通知?

0 投票
3 回答
566 浏览

mvvm - Silverlight MVVM 标头详细信息

所以可以说我有一个 OrderModel 和一个 OrderViewModel。我在 ViewModel 和 Model 上都有供应商、订单日期等属性,它们是链接在一起的。看过这方面的例子,看起来很简单,尽管在编写 setter/getter 方面有些重复。

现在我该如何处理 OrderDetails?在我的模型中,我会有一个列表。

我有 OrderDetail 的 OrderDetailViewModel 吗?如果是这样,那么 OrderViewModel 是如何提供的呢?作为 ObservableCollection?如果是这样,您如何使其与原始列表保持同步?

这是我没有看到一个像样的例子的地方。如果有人可以指出我,我将不胜感激。我喜欢 MVVM 的概念,但我开始觉得它的开销太大了。为什么不让 ViewModel 也处理模型部分。在日常的 LOB 应用程序中,两者之间真的有那么大的区别来保证真正的 MVVM 似乎需要的所有代码吗?

0 投票
6 回答
11259 浏览

c# - MVVM WPF 中的 ICommand

我正在查看这个 MVVM 的东西,我遇到了一个问题。

情况很简单。

我的 index.xaml 页面中有以下代码

在我的 index.xaml.cs

...

初始化组件();base.DataContext = new MovieViewModel(ent.Movies.ToList()); ……

这是我的 MoveViewModel

最后

这是我的控制 xaml MovieView

所以我遇到的问题是,如果我在 Binding 设置 ItemsSource

它什么也没做

如果我设置 ItemsSource="{Binding lm}"

它填充了我的 itemsControl 但命令 (Command="{Binding Path=TestCommand}" ) 不起作用。

当然它不起作用,因为 TestCommand 不属于我的实体对象 Movies。

所以最后我的问题是,

我需要将什么传递给 ItemsControl 才能使其正常工作?

提前谢谢