我有2個視窗和2個用戶控制元件,第一個視窗使用第一個用戶控制元件來顯示串列視圖中的物件的簡要資訊,現在當用戶點擊串列中的一個物件(行)時,第二個視窗應該用第二個用戶控制元件打開,顯示該物件的完整資訊。
因此,問題是我如何將該物件從UC1傳遞到UC2。
uj5u.com熱心網友回復:
你的問題的答案是使用MVVM。例如:
串列視窗:
<Window>
<ItemsControl ItemSource = {Binding DataItems}>
<ItemsControl.ItemTemplate>
<userControls:YourLessDetailedUserControl/>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Window>
細節視窗:
<Window>
<userControls:YourMoreDetailedUserControl DataContext = {Binding DataItem}/>
</Window>
ViewModels:
class MainWindowViewModel
{
public List<DataItemViewModel> DataItems {get; }
}
class DataItemViewModel
{
public ICommand OpenInDetailedWindow {get; }
//這里有更多的屬性來描述你的資料項。
}
class DetailedWindowViewModel
{
DataItemViewModel DataItem {get; }
在DataItemViewModel中的ICommand應該被定義為打開詳細視窗,DetailedWindowViewModel.DataItem設定為該DataItemViewModel。
如果你是MVVM的新手,這一切看起來都很陌生。但這并不重要。對每個人來說,一開始都很難。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324491.html
標籤:
