- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在经典的 MVVM 示例中,我看到 DataTemplate 定义用于将 View 模型映射到 View ,在 MVVM Light 框架中执行此操作的标准方法是什么?映射应该位于哪里?以下是我现在正在做的事情和我正在谈论的示例,可混合性对我来说很重要!
主窗口:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="STS2Editor.MainWindow"
Title="{Binding ApplicationTitle, Mode=OneWay}"
DataContext="{Binding RootViewModel, Source={StaticResource Locator}}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/ApplicationSkin.xaml" />
<ResourceDictionary Source="Resources/ViewMappings.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<ContentControl Content="{Binding ApplicationManagementViewModel}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
</Window>
在上面的代码中,我的 RootViewModel 类有一个具有相同属性名称的 ApplicationManagementViewModel 类的实例:
public ApplicationManagementViewModel ApplicationManagementViewModel {get {...} set {...} }
我引用 ResourceDictionary“ViewMappings.xaml”来指定我的 View 模型如何表示为 View 。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:STS2Editor.ViewModel">
<DataTemplate DataType="{x:Type local:ApplicationManagementViewModel}">
<local:ApplicationManagementView/>
</DataTemplate>
</ResourceDictionary>
我应该使用 ViewModelLocator 做这样的事情吗? View 模型的集合怎么样?
最佳答案
您使用的方法(使用隐式类型的 DataTemplates)在 WPF 中工作正常,但不幸的是它在 Silverlight 中不起作用。这就是为什么我更喜欢使用一种在两个领域都有效的更明确的方法的原因之一。
此外,隐式类型的 DataTemplate 可能会有点令人困惑,因为模板的来源并不总是很清楚。这有时会使集成商的工作变得非常困难,特别是对于 UI 的微小更改(曾经在那里,完成过:)
没有义务在 MVVM Light 中使用 ViewModelLocator,它只是一种运行良好且非常容易理解的方式(对于不熟悉 WPF/SL 微妙之处的阅读代码的人来说)。最后,这在很大程度上是一个偏好问题,但最近 ViewModelLocator 模式似乎越来越受欢迎(例如,请参阅这篇文章,其中通用 ViewModelLocator 与 MEF 一起使用)。
http://www.johnpapa.net/simple-viewmodel-locator-for-mvvm-the-patients-have-left-the-asylum/
最后,我要补充一点,我对 MVVM Light 中 ViewModelLocator 目前的实现不是很满意,我想在下一个版本中提出一个更通用的解决方案。
关于wpf - 定义嵌套 View 的标准约定是什么:viewmodel mapping in MVVM Light,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2661198/
我正在实现谱聚类算法,我必须确保矩阵(拉普拉斯矩阵)是半正定矩阵。 检查矩阵是否为正定矩阵 (PD) 就足够了,因为可以在特征值中看到“半”部分。矩阵非常大(nxn,其中 n 是几千的数量级)所以特征
我是一名优秀的程序员,十分优秀!