我有一個wpf應用程序,它顯示5個不同的用戶控件,當你通過系統。每個用戶控件都有一個列表框。所以我想選擇一個項目並將其傳回給MainViewModel。我現在有它的工作,以便我可以在ViewModelBase中存儲一個值,但似乎調用User控件的策略是有缺陷的,因爲我無法鏈接到每個單獨的ViewModel,但只能連接到ViewModelBase。我明白的地方,我要去錯了,但我不知道有沒有辦法做到這一點通過seperately而不是初始化每個用戶控件就在viewModelBase因爲我在這裏做的:WPF應用程序有幾個用戶控件將值傳遞給MainViewModel(MVVM)
private ViewModelBase _control;
public ViewModelBase Control
{
get { return _control; }
set
{
_control = value;
OnPropertyChanged("Control");
}
}
,然後我說上加載
Control = new MainScreenViewModel();
ynd = new YesNoDelegate(YesNoNavigation);
Control.SetReturnData(ynd);
Control.name = "MainScreen";
然後
控制被稱爲XAML中像
<ContentControl Content="{Binding Control}" Height="350" Width="525" Grid.Column="1"/>
任何幫助將大大appriciated。
謝謝。
我不知道我是否是唯一一個不瞭解你設計的人。但是,你能清楚地解釋你的設計嗎?這是什麼意思:'所以我想選擇一個項目並將其傳遞迴MainViewModel'。你想選擇一個ListBoxItem?所有的用戶控件和主視圖都共享同一個數據上下文嗎? – Amsakanna 2010-06-04 09:27:46
基本上,我有ViewModels爲每個usercontrol.So可以說有usercontrol1.xaml有一個listbox.I有一個personVariable在我的usercontrol1viewmodel,我存儲在那裏選擇的項目。現在我希望這將傳遞迴我的mainViewModel時我點擊一個按鈕。這適用於當我的ViewModelBase中的變量(我有權發送委託)「ynd = new yesnodelegate(yesNoNavigation); Control.SetReturnData(ynd);」這setReturnData方法是在ViewModelBase,但我希望它在Usercontrol1ViewModel,但它不會訪問它。抱歉令人困惑。即時通訊仍在學習MVVM – dstuction 2010-06-04 09:41:34