我有一个DataTemplate(以及两个数据模板),我想将它们用作某些视图 基本表单视图模型(包含值的值和表示我是否要使用该值的布尔值)。
我想多次使用datatemplate(s)来表示单独的表单项。我认为正确的方法是将其设置为ContentControl的ContentTemplate(在这种情况下,它将具有相同的数据上下文吗?)但我也想传递标签字符串,因为标签字符串是ui的一部分,不改变将它放在viewmodel对象中似乎是错误的。如何将标签字符串访问DataTemplate实例?
答案 0 :(得分:1)
就像它的名字一样,DataTemplate
用于模拟数据 ...例如,如果你有一个名为MyItem
的类,其{{1}和Name
并且您希望以特定方式显示它,您将为Item设置datatemplate并在需要时使用它。
在你的情况下,你说的是非常相似的Value
,他们之间只有很小的变化。这个小的改变(如果我理解你的问题正确)不是来自模型或来自视图模型的东西,而是完全面向视图的东西(例如,页面的不同标题)。
如果您计划为每个视图使用不同的viewmodel,并且每个viewmodel都有不同的用途 - 我没有看到向VM添加views
属性并将其绑定到该属性的问题(请记住, MVVM是一套指导原则,而不是规则......)
如果您仍然希望将其与viewmodel分开,则可以使用 Attached Property 。例如,创建一个名为Title
的附加属性,并让每个视图中的每个内容控件更改它。当然,标签将绑定到该附属财产。