我在包含一個列表框的頁面上有一個控件。我也有一個細節視圖的另一個控件。控件之間的WPF綁定
的控件都擁有自己的視圖模型,他們的子控件綁定到。
Image Outlook。它有一個文件夾列表,當您選擇一個文件夾時,詳細信息控件將顯示該文件夾的內容。
如何將詳細控件綁定到列表控件中的選定項目?
我在包含一個列表框的頁面上有一個控件。我也有一個細節視圖的另一個控件。控件之間的WPF綁定
的控件都擁有自己的視圖模型,他們的子控件綁定到。
Image Outlook。它有一個文件夾列表,當您選擇一個文件夾時,詳細信息控件將顯示該文件夾的內容。
如何將詳細控件綁定到列表控件中的選定項目?
如果我得到了正確的答案,那麼您將掌握主從情況。你能否將ViewModel的詳細信息添加爲主ViewModel的屬性?這樣你就不需要任何特別的東西。它應該自動工作。事情是這樣的:
public class MyMasterViewModel
{
public List<MyDetailViewModel> Details
{ get; set; }
}
的MyMasterViewModel
集集合作爲DataContext
以兩種觀點並進行適當的設置綁定。當您在主列表中移動時,詳細列表將自動更新。
你可能需要設置IsSynchronizedWithCurrentItem
屬性:
<ListBox ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
DisplayMemberPath="Something"/>
使用元素與元素的結合,這裏鏈接MSDN http://msdn.microsoft.com/en-us/library/ms752347.aspx頁面主詳細的例子。
我的問題是,主視圖是在不同的控制細節視圖。我會嘗試使用相同的ViewModel來控制兩個控件 – 2010-04-27 15:13:47
如果它們在同一個窗口上,那麼你可以在窗口上設置'DataContext'。如果你有其他的窗口數據上下文,看看你是否可以將這兩個視圖放在一個容器(網格或某些佈局面板)中,然後將'DataContext'設置爲該容器。 – zendar 2010-04-27 15:24:38