2011-07-02 31 views
1

我試圖找出一種不太複雜的方式來重複控制n次,具體取決於綁定模型的屬性值。第一個mn控件應該以不同的方式顯示,而m被綁定到ViewModel的不同屬性。爲了說明這個問題,考慮我有一個視圖模型是這樣的(ñDisplayChecked這裏):重複控制n次並綁定每個實例

public class MyViewModel : ViewModelBase { 
    public int Display { get; set; } 
    public int Checked { get; set; } 
    /* ... */ 
} 

對於Display = 5, Checked = 3,認爲應該呈現的線沿線的東西:

(X) (X) (X) () () 

每個(X)()應該是相同子視圖類型的實例。現在,當用戶點擊第五個(最後一個)控制,Checked應設置爲5,查看現在將顯示

(X) (X) (X) (X) (X) 

現在我可以掛接一些事件處理程序和編程方式添加和結合達到這一()每當Display更改時。我想知道,如果有更簡潔,更簡單的方法來實現這一點。

+0

這是一個評級控制? –

+0

不完全,但其機制會類似。它也不同於評級控制的規模:它可以並且將在運行期間根據外部環境改變最大值。 – Manny

回答

2

將ViewModel視爲視圖模型。因此,如果您想在視圖中顯示項目集合,則必須在ViewModel上提供該集合。

在這種情況下,向ViewModel添加一個集合,當Display和Checked的值發生變化時,該集合會發生變化。然後將ItemsControl綁定到集合併爲這些項目提供ItemTemplate。

+0

這個解決方案非常簡單,優雅和明顯,以至於我的腦袋都會滑落:) – Manny