2012-12-31 36 views
0

我有一個DataTemplate(以及兩個數據模板),我想用作一些 基本表單視圖模型的視圖(包含值和和布爾值,指示我是否想要使用該值)。如何傳遞一個額外的變量到一個數據模板

我想多次使用數據模板來顯示不同的表單項。我認爲正確的方法是將其設置爲ContentControl的ContentTemplate(在這種情況下,它將具有相同的數據上下文嗎?),但我也想傳遞標籤字符串,因爲標籤字符串是ui的一部分,不會改變它看起來是錯誤的把它放在viewmodel對象中。如何將標籤字符串的訪問權限授予DataTemplate實例?

+0

你的問題不清楚。你是什​​麼意思*「傳遞字符串在表單用戶界面中使用」*? – Blachshma

+0

表單ui由標籤,文本框和複選框組成,複選框和文本框綁定到數據上下文的屬性。 –

+0

但我認爲指定文本框上方標籤的人類可讀文本的標籤不應該是datacontext對象的一部分。 –

回答

1

就像它的名字,一個DataTemplate用於模板化數據 ...例如,如果你有一個叫做MyItem類,它有一個NameValue,你想這顯示在一個特定的方式,你」將爲Item設置一個數據模板,並在需要時使用它。

在你的情況,你說的是非常相似的views,只是他們之間有一個小的變化。這個小小的改變(如果我正確地理解了你的問題)不是來自模型或視圖模型的東西,而是完全面向視圖的東西(例如頁面的不同標題)。

如果您計劃對每個視圖使用不同的視圖模型,並且每個視圖模型有不同的目的 - 我沒有看到向VM添加Title屬性並將其綁定到該問題(請記住,MVVM是一套準則,而不是規則...)

如果你還寧願它從視圖模型分開,那麼你可以使用一個Attached Property。例如,創建一個名爲TemplateTitle的附加屬性,並讓每個視圖中的每個contentcontrol都改變它。當然,該標籤將綁定到該附加屬性。

相關問題