问题标签 [mvvm-light]

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 投票
1 回答
2153 浏览

.net - mvvm-light 工具包未触发 Window Loaded 事件

我有一个窗口并使用 MVVM 轻工具包绑定到 Loaded 事件:

在我的视图模型中,我有以下内容:

但是在显示的窗口中,尽管当我在 Loaded 属性中放置断点时正在初始化 ICommand 变量,但不会引发异常。我尝试改用 Initialized 事件,但还是一样。这在我在同一个应用程序中拥有的另一个窗口中工作正常,所以我几乎可以肯定我做的一切都是正确的 - 可能有我遗漏的东西吗?当我与代码隐藏绑定时,它工作正常,但我想坚持 mvvm 模式。提前致谢。

0 投票
1 回答
1160 浏览

silverlight - Mvvm Silverlight,使用绑定到 SilverLight DataGrid 中的编程样式行

是否可以将 Silverlight DataGrid 中的行绑定到 ViewModel 中的某种样式属性,以便可以以编程方式/动态应用样式?

我一直在使用 Mvvm-Light 工具包非常成功地创建了一个 mvvm silverlight 应用程序,这是我遇到的第一个主要绊脚石。

提前感谢您的帮助。

0 投票
1 回答
8855 浏览

wpf - 使用 mvvm light wpf 针对项目列表创建动态复选框?

我有以下情况:

我有一个窗口说 MainWindow 我根据数据库中的特定用户显示活动列表。窗口上有一个按钮。通过单击该按钮,将打开一个新窗口,其中包含主表中的所有活动列表。现在我想在第二个窗口上动态添加一个复选框,以便用户可以选择/取消选择活动。那些选择/取消选择的值应该保存在数据库中,并且 Parent/MainWindow 在单击完成按钮后应该刷新,并且更改应该反映在 MianWindow 中。但我不知道如何针对每个列表项动态创建复选框并与 xaml 绑定并选择/取消选择复选框。

请提供样品或示例。

谢谢

0 投票
1 回答
161 浏览

wpf - 将工具栏注入另一个视图

我正在为我的新项目使用 mvvm。我有一个消息调度程序在视图模型之间发送消息,但在一种情况下,我必须在视图中接收消息。此视图包含一个工具栏面板,该面板必须包含与详细视图相关的工具栏(例如编辑客户需要一个带有保存、撤消、重做、取消的工具栏)。

问题是我必须订阅视图内的消息才能编写:

但是......我必须 1)从容器中检索视图(所以不是 XAML!)以便为 messageBroker 提供 DI 2)调用静态 IoC.Container.Resolve(); 内部构造函数

选项 2 破坏了 VS2010 设计器,因为容器未在设计模式下配置...

任何的想法?从视图模型中看不到视图,我使用静态 ViewModelLocator。

0 投票
1 回答
1505 浏览

mvvm-light - 如何将 MVVM Light Toolkit 与现有的非 MVVM Light Toolkit 项目一起使用

我需要为我正在处理的应用程序使用 Surface 项目模板,但我也想使用 MVVM Light Toolkit。我看到我可以“添加|新项目...”并为视图、视图模型或定位器选择一个 MVVM 团队板,但除了添加其中一个之外,我似乎还需要做一些事情来连接它并确保我已添加对 mvvm 程序集的引用。

我正在尝试通过研究创建 MVVM Light 项目时生成的内容来解决这个问题,但我希望有人已经将这一切弄清楚并记录在案。我知道 Laurent 提到他将在一篇博文中写下这篇文章,但我看了看却找不到。如果有人知道我在哪里可以找到那将是杀手的帖子。提前致谢。

0 投票
1 回答
1154 浏览

.net - RaisePropertyChanged(string propertyName, T oldValue, T newValue, bool 广播)

我试图RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)让它工作,但无法让它工作。

我没有在任何现实世界的场景中实现它,而只是为了学习它。如果我只以通常的方式提高广播,它就会起作用 Messenger.Default.Send<PropertyUpdateeMessage>(new PropertyUpdateeMessage("test"));

所以我想知道我想念什么 RaisePropertyChanged<T>(string propertyName, T oldValue, T newValue, bool broadcast)

提前致谢。

问候拉基

0 投票
1 回答
1073 浏览

wpf - 从列表框 mvvm 中获取选定的复选框项目

我有一个列表框,我在其中动态显示数据库中预先选择的复选框。现在我想遍历它以获取选定的项目/值。我正在使用 mvvm light wpf。

好心建议?

谢谢

0 投票
3 回答
479 浏览

.net - 关于 INotifyPropertyChanged 和更新绑定的困惑

据我(想)了解,在 ModelView 中实现 INotifyPropertyChanged 允许在属性被修改的情况下引发 PropertyChanged 事件。

这样,应该通知 View 底层属性已更改,因此 UI 应该获取新的更改。

我的理论正确吗?

我面临的问题是我有一个绑定到 ViewModel 的 Infragistics DataGrid。一旦我更改了日期值,我就可以看到 ViewModel 上的属性是如何正确设置的以及事件是如何引发的。但是我还没有从外部订阅这个事件,UI 是如何得到通知的呢?

我问这个是因为我认为 UI 根本没有通知。我已经放置了第二个文本框,它将 ViewModel 绑定到相同的基础模型属性。但是,如果我使用 DataGrid 修改该属性,则 TextBox (Mode=OneWay) 不会自动更新。

我实际上利用 MVVM-Light Frame 工作并使用 ViewModelBase 而不是 INotifyPropertyChanged 并执行 RaisePropertyChanged(...)。但结果应该是相似的。

我是否必须以某种方式手动订阅 TextBox 到该事件?

编辑: 我已经解决了这个问题,但不明白为什么会这样。在回答问题之前,我需要进一步解释一下架构。Datgrid 绑定到 ViewModelA 中的 propertyA,它返回ObservableCollection<ViewModelB>. ViewModelB 实际上包含 Grid 应该显示的所有属性。所有这些属性在它们的 Setter 中自然触发 OnProperyChanged。

TextBox 绑定到 PropertyB,它也存在于 ViewModelA 中。但它直接返回一个字符串,所以 PerpertyB 的底层 getter 返回:

但是,如果我不将 TextBox 绑定到此 propertyB,但也将其绑定到 PropertyA,则它可以工作:

有点奇怪。我期待它以同样的方式工作。两个属性都存在于同一个 ViewModel 上并访问同一个private ObservableCollection<ViewModelB>,这有什么关系呢?

凯夫

0 投票
1 回答
253 浏览

silverlight-4.0 - mvvm-light 和 silverlight 4 兼容性

我已经下载了 mvvm light 工具包源 4157,并尝试使用 EventToCommand.SL 示例。如果我使用 silverlight 3 框架,它在 Visual Studio 2010 中运行良好。

但是,如果我选择 silverlight 4 版本(EventToCommand.SL 项目属性),则不会出现任何内容:与 Command 属性关联的 ViewModel 方法永远不会执行。未达到 EventToCommmand 类的 Command 属性的设置器!

有什么我错过的吗?还是有解决方法?

谢谢

0 投票
1 回答
1526 浏览

silverlight - 使用 MVVM Light 绑定后如何在列表框中设置选定项?

我在 Windows Phone 应用程序上使用 MVVM Light。我想在数据绑定后将所选项目设置在列表框中。

我认为最好的方法是在列表框上为 Loaded 事件设置一个 eventToCommand 并传递元素以设置选定的索引,但我不确定如何将列表框元素传递给 RelayCommand。