所以我試圖繞過MVVM我的頭,我發現我有更多的問題比答案。該教程還遠遠不夠我當談到下一步...MVVM - 總結/細節
基本上我想要的項目列表,然後一個辦法讓每個項目的詳細信息。
下面是我在網上找到的例子,他們的工作很好地顯示在列表中,但我需要知道我可以用我的VM獲得這個項目的細節。
private IList<item> m_items;
private IList<item> m_Item;
private IList<item> getItemDetail(Int32 iId)
{
var myItem =
from i in items
where i.iId == iId
select i;
m_Item = new List<item>();
foreach (var item in myItem)
{
m_Item.Add(item);
}
return m_Item;
}
public myViewModel()
{
m_items = new List<item>
{
new item(1, "test,),
new item(2, "test2"),
new item(3, "test1")
};
m_Item = new List<item>();
m_Item = getItemDetail(iId);
}
更新:
我更新我上面的視圖模型的代碼。我想我所做的是我已經添加了另一個列表,當用戶導航到一個詳細頁面時,視圖模型被調用,然後填充詳細列表的特定ID。我可能不需要在這裏列出,但我想盡量保持它與主頁面代碼一致。
在我的詳細信息頁面我設置了虛擬機是這樣的:
itemViewModel VM = new itemViewModel((Int32)navigationParameter);
DataContext = VM;
當我在VM可變我看到了我2只列出了突破。但是,我的綁定在XAML上不起作用。如果我需要發佈一些示例XAML,請告訴我。我可以做到這一點,但我希望有一些我在這裏失蹤的東西。
我想學習MVVM,我想做正確的事情。所以,我不想走錯路,我真的想知道做事的「正確」方式。所以,如果你看到錯誤,請讓我知道。
謝謝!
我的願望是保持這個項目超級簡單...這是最好的方式來完成我想要的東西嗎?我不想讓這個超級複雜。所以如果還有另一種更簡單的方法,我也會對看到該選項感興趣。 – webdad3
如果你嘗試實現它,你會發現它很簡單:1)通過聲明一個CollectionViewSource來創建集合視圖,2)爲一個ListBox和一個ContentControl創建DataTemplates以顯示你想要的內容,3)綁定ListBox的ItemsSource和ContentControl的內容添加到集合視圖。我認爲不太優雅和靈活的替代解決方案在http://stackoverflow.com/questions/1183176/implementing-a-simple-master-detail-scenario-for-wpf-in-mvvm –