我一直在處理簡單的MVVM模式,並從此更多地深入瞭解WPF數據綁定的全部功能。我遇到了一個問題,我似乎無法將我的頭圍繞。採取以下MainWindowViewModel代碼起動器:WPF MVVM多視圖問題,使用ListBox.SelectedItem
ObservableCollection<DataRecord> _SomeData = new ObservableCollection<DataRecord>();
public ObservableCollection<DataRecord> SomeData
{
get
{
return _SomeData;
}
set
{
_SomeData = value;
}
}
public MainWindowViewModel()
{
CurrentViewModel.Add(new RandomViewModel(SomeData));
}
相反粘貼的代碼的全部長度,我已綁定列表框來ViewModelBase的一個ObservableCollection <>,參照每個鹼基添加(圖像導航)的圖像屬性。現在!對於問題:
我正在使用DataTemplate從ViewModel引用視圖,使用從ListBox.SelectedItem返回的字符串。因爲RandomViewModel需要傳遞參數,所以無論何時單擊ListBox.SelectedItem,都會實例化一個新的View,而不是在ListBox中創建的View。這種情況發生的原因很簡單,新的View需要一個RandomViewModel來引用數據綁定。所以!對於ViewModel/View Navigation使用臭名昭着的ListBox.SelectedItem,即使ViewModel需要傳遞參數,我該如何創建View並仍然引用其ViewModel?要麼!我該如何使用已經實例化的ViewModel並將其用作新創建的View的引用?
我真的不明白你有什麼。 – MBen
我以爲這個問題有足夠的重量,我猜不是!你錯過了什麼可以幫助回答這個問題? – user1280092