2013-01-06 25 views
2

我想在我的主窗口中託管一個用戶控件,但我很難決定如何將它實現到我的視圖模型中。WPF MVVM在ViewModel中存儲用戶控件?一個很大的禁忌?

首先,我創建用於用戶控制的單獨視圖模型和所使用的數據模板託管它ContentControl內部之前將其映射到控制:

數據模板:

<DataTemplate DataType="{x:Type viewModels:TaskbarIconViewModel}"> 
    <tb:TaskbarIcon/> 
</DataTemplate> 

XAML:

<ContentControl Content="{Binding TaskbarIconViewModel}"/> 

如果我使用這個設置,我將如何在用戶控件上調用方法,以及如何在XAML或視圖模型中設置用戶控件的屬性?其次,我的想法是在視圖模型中保存用戶控件,然後再次將它綁定到ContentControl。這對我和MVVM來說似乎都是錯誤的。這是正確的嗎?在視圖模型內部保存控件是否可以接受?

在視圖模型:

public TaskbarIcon TaskbarIcon { get; set; } 

XAML:

<ContentControl Content="{Binding TaskbarIcon}"/> 

這裏有什麼行動的辦法最好?

+0

顯示的圖標是一個觀點的關注,在一般。您希望在視圖模型中使用它嗎? – Berryl

+0

這是一個自定義控件,允許我與任務欄托盤圖標進行交互。這個具體的例子要求我可以通過調用控件上的方法從托盤圖標顯示一個氣球。 – ChrisO

回答

5

將UserControl存儲在ViewModel中:一個很大的禁忌?
ViewModel不應該意識到該視圖。

什麼你在談論什麼PRISM的地區做什麼,不推倒重來;)

+0

不是任何人*需要*棱鏡來完成一些有用的東西... – Berryl

+0

謝謝,看起來我需要擊中PluralSight並通過他們的棱鏡課程:) – ChrisO

相關問題