问题标签 [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 投票
4 回答
4159 浏览

mvvm - 使用 MVVM 工具包灯发送空消息或通知

我正在使用 MVVM Light Toolkit。我找不到任何 Messenger 或 Notification 类来发送空消息。

视图模型1:

视图模型2:

我只需要向另一个 ViewModel 发送通知,根本不发送数据。

MVVM Light Toolkit 库有可能吗?

0 投票
2 回答
2098 浏览

silverlight - 如何在 MVVM 中播放声音和动画

我已经阅读了很多关于播放声音/动画的最佳方式的博客,但如果可能的话,我希望看到一个关于如何完成的简化示例,以便我更好地理解。

所以我对 MVVM 的理解

视图-->声音和动画

ViewModel-->如果某个值为真,我想在视图上播放声音和动画。

现在我将如何去做。我被告知要使用 ISoundService 和 IAnimationService 等接口。在View中实现然后做什么?如果可能的话,一个可行的裸骨示例将有很大帮助。

0 投票
2 回答
3019 浏览

visual-studio - VS 2010:无法使用快捷方式插入 mvvm-light 片段 - 与 resharper 5 不兼容?

我最近安装了一些我正在使用的 mvvm-light 框架附带的片段。果然我检查过

它们安装在“我的代码片段”下。

如果我确实插入了 Snipper(在代码窗口中右键单击)或 CTRL K + CTRL X,那么我可以在所有可用的片段中搜索....

但我确实相信只需键入快捷键(在本例中为 mvvmlocatorproperty)并按 Tab 即可插入片段

但是当我输入快捷键时,它什么也没有识别...

我究竟做错了什么??

这不是与 resharper 5 不兼容吗?- 我已经安装了

任何想法都非常感谢

0 投票
1 回答
1000 浏览

.net - mvvm-light:我们应该在定位器中合并清理方法吗?

当使用代码片段在定位器类中创建新的 ViewModel 时,它会创建一个清理方法,但 Main 中已经有一个可用的方法,因此出现错误....

我们应该将它们全部合并吗?

或者我们是否应该将方法重命名为 Cleanup[Name of viewmodel] 例如。

我在这里有点困惑

我想问的另一个问题是关于命名约定。

我试图遵循与“MAIN”一起使用的命名约定......

因此我有 CreateLogin、ClearLogin、Login(用于绑定的非静态属性)等。

使用 CreateLoginViewModel、ClearLoginViewModel 等不是更好吗?

只是好奇

谢谢

0 投票
3 回答
15084 浏览

.net - MVVM-light 中的清理与处置(布尔)

在最新版本的 MVVM-light (V3 SP1) 中,ViewModel 类中的“Dispose()”和“Dispose(bool)”方法都被标记了

不再使用此方法,它将在以后的版本中删除。改用 ICleanup.Cleanup()

这是否意味着不能在派生自 GalaSoft.MvvmLight.ViewModelBase 的所有 ViewModel 类中实现 IDisposable 接口(并且必须覆盖清理)?

如果是,则 using 不能用于视图模型实例...可能我不明白某些东西...请澄清...这种清理有什么好处?

谢谢。

0 投票
3 回答
17358 浏览

.net - 将事件参数和发送者传递给 RelayCommand

使用 RelayCommand 时如何获取事件发送者?

0 投票
1 回答
740 浏览

silverlight - 使用 Silverlight 3 + MVVM Light 工具包对 AutoCompleteBox 进行错误处理

我正在尝试创建一个包含 AutoCompleteBox 的用户控件。我想使用此 AutoCompleteBox 的 SelectedItem 属性来填充其他用户控件,其中包含基于用户选择的项目的信息。为了防止每次用户在下拉列表中的项目之间“导航”时触发 SelectedItem,我创建了一个在 DropDownClosed 事件上执行的 EventToCommand,如下所示:

该命令的类型为: public RelayCommand SelectedItemCommand { get; 私人套装;}

这可以正常工作,除非用户开始输入开头有匹配项的内容,但如果用户继续输入并且不再有匹配项,则 DropDown 关闭并且实际上没有选择任何项目。这给了我一个错误,上面写着:

无法将“System.Windows.RoutedPropertyChangedEventArgs`1[System.Boolean]”类型的对象转换为“MyProject.ViewModels.MyItem”类型

我试图在命令的 Command 方法中为该命令创建一个 try-catch 语句,但即使在我进入该方法之前,该异常似乎就已被触发。

我的问题是:如果不匹配(即 AutoCompleteBox 中没有实际的 SelectedItem),如何防止命令被触发?

0 投票
1 回答
1026 浏览

c# - 在 MVVMLight 中接收派生类型的消息

这个测试不应该通过吗:

我必须接收从一个基类继承的类的所有消息。MVVMLight 在 Register 方法中有 bool 属性 receiveDerivedMessagesToo,但在我看来它不起作用。

请注意,当我不使用 GenericMessage < T > 时,测试通过。它是 galasoft mvvm light 还是功能中的错误?

0 投票
2 回答
1921 浏览

wpf - WPF ComboBox 绑定到非字符串对象

我正在使用 MVVM (MVVM Light Toolkit),并且在视图模型上有一个属性,它公开了一个对象列表。这些对象包含两个属性,都是字符串,它们与缩写和描述相关。我希望 ComboBox 将配对公开为“缩写 - 描述”。如果我使用数据模板,它很容易做到这一点。

我在视图模型上有另一个属性,它表示应该显示为选中的对象——组合框中的选中项。我将 ItemsSource 绑定到列表,因为它代表可用选择的宇宙,并且正在尝试将 SelectedItem 绑定到此对象。我正在自杀,试图弄清楚为什么我不能让它工作,并且感觉更像是一个小时的骗局。

在试图了解为什么会这样的过程中,我创建了相同的方法,只使用了一个字符串列表和一个选定的字符串。这完美地工作。因此,它显然与打字有关……也许与选择平等有关?或者可能与数据模板有关?

这是 XAML:

而且,如果有帮助,这里是 ViewModel:

这是暴露的可笑的微不足道的类:

谢谢!

0 投票
1 回答
2464 浏览

wpf - 无法将单个参数传递给 MVVM Light Toolkit 的 RelayCommand 中的 lambda 函数

我不知道 Josh Smith 和 Laurent Bugnion 的 RelayCommand 实现之间是否有区别,但是我看过的任何地方,听起来 RelayCommand 的 Execute 部分可以采用 0 或 1 个参数。我只能让它与 0 一起工作。当我尝试类似的东西时:

我得到错误:Delegate 'System.Action' does not take '1' arguments。只是为了确保我没有发疯,我查看了 RelayCommand 的定义,以确保我的解决方案中没有某些流氓实现,但可以肯定的是,它只是 Action,而不是 Action<>。

我到底在这里想念什么?