如何将额外变量传递给datatemplate

时间:2012-12-31 14:11:05

标签: wpf

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

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

1 个答案:

答案 0 :(得分:1)

就像它的名字一样,DataTemplate用于模拟数据 ...例如,如果你有一个名为MyItem的类,其{{1}和Name并且您希望以特定方式显示它,您将为Item设置datatemplate并在需要时使用它。

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

如果您计划为每个视图使用不同的viewmodel,并且每个viewmodel都有不同的用途 - 我没有看到向VM添加views属性并将其绑定到该属性的问题(请记住, MVVM是一套指导原则,而不是规则......)

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