0

我有一个 DataTemplate(以及两个数据模板),我想将其用作一些基本表单视图模型的视图(包含一个值和布尔值,指示我是否要使用该值)。

我想为单独的表单项多次使用数据模板。我认为正确的方法是将其设置为 ContentControl 的 ContentTemplate (在这种情况下它将具有相同的数据上下文对吗?)但我也想传递标签字符串,因为标签字符串是 ui 的一部分,并且不会改变将它放在 viewmodel 对象中似乎是错误的。如何将标签字符串的访问权限授予 DataTemplate 实例?

4

1 回答 1

1

就像它的名字一样,aDataTemplate用于模板化数据......例如,如果你有一个名为的类MyItem,它有 aName并且Value你希望它以特定的方式显示,你将为 Item 设置一个数据模板并在任何时候使用它需要。

在您的情况下,您说的是非常相似views,它们之间只有很小的变化。这个微小的变化(如果我正确理解了你的问题)不是来自模型或视图模型,而是完全面向视图的东西(例如,页面的不同标题)。

如果您计划为每个视图使用不同的视图模型,并且每个视图模型都有不同的用途 - 我认为Title向 VM 添加属性并绑定到它没有问题(请记住,MVVM 是一组准则,而不是规则...)

如果您仍然希望将其与视图模型分开,那么您可以使用Attached Property。例如,创建一个名为 的附加属性TemplateTitle,并让每个视图中的每个内容控件更改它。当然,标签将绑定到该附加属性。

于 2012-12-31T14:39:25.480 回答