Ben C# için yeni ve basit bir Crud uygulaması yaparak MVVM öğrenmeye çalışıyorum. Uygulamamda, kullanıcı tıkladığında o kullanıcı kontrolünü yükleyecek bir dizi düğmeyi kullanmak istiyorum. Böylece "Öğe Ekle" ye tıkladığınızda, varolan denetimi AddItemView ile değiştirecektir. Bunun için nasıl gittiğimi merak ediyordum? Şimdiye kadar gördüğüm mvvm öğreticilerinin çoğu sadece MainMindow üzerinde tek bir kontrole sahipler.MVVM Swapping out denetimleri
0
A
cevap
3
Bu tür bir görev için genellikle ContentControl
kullanın. Denetimin Content
özelliğini, ViewModel'inizin (CurrentViewModel
) bir özelliğine bağlayın ve ContentControl
'da görüntülenebilen her bir ViewModel türü için DataTemplates
tanımlayın. Bir ViewModel'i CurrentViewModel
'a atarken, ContentControl
içeriği için uygun DataTemplate
seçecektir.
Ana ViewModel
private object _currentViewModel;
public object CurrentViewModel
{
get { return _currentViewModel; }
set
{
if (value != _currentViewModel)
{
_currentViewModel = value;
OnPropertyChanged("CurrentViewModel");
}
}
}
App.xaml
<Application.Resources>
<DataTemplate DataType="{x:Type vm:AddItemViewModel}">
<v:AddItemView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:FooViewModel}">
<v:FooView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:BarViewModel}">
<v:BarView />
</DataTemplate>
...
</Application.Resources>
Ana görünüm Senin durumunda
... <ContentControl Content="{Binding CurrentViewModel}" /> ...
, içinde "Öğe ekle" düğmesi için komut olarak,
CurrentViewModel
İlgili konular
- 1. Mac OS X Görünüm Swapping
- 2. MVVM
- 3. MVVM
- 4. MVVM
- 5. MVVM?
- 6. MVVM
- 7. jQuery/Out
- 8. MVVM Foundation vs MVVM Toolkit
- 9. ASP.NET dinamik denetimleri sayısı (giderken denetimleri oluşturma)
- 10. WPF DataGrid (MVVM) için ScrollIntoView (MVVM)
- 11. Nasıl Check out out SVN için Dosya Ekle
- 12. Oracle pop-out girdisi
- 13. System out println
- 14. JTextFild Glitched Out
- 15. DynamicMethod ve out-parameters?
- 16. jquery focus in/out
- 17. Pop-out görüntü html
- 18. DataTemplate + MVVM
- 19. MVVM Kalıbı
- 20. WPF, MVVM
- 21. WGF MVVM
- 22. WPF: MVVM
- 23. mvvm mimarisi
- 24. Odağı, MVVM
- 25. Winforms'ta WPF denetimleri barındırma
- 26. WPF: Koddan denetimleri ekle
- 27. jQuery UI Denetimleri
- 28. Delphi Açılır Menüsü Denetimleri
- 29. Denetimleri kaldır wxWidgets
- 30. Ninject.Web ve kullanıcı denetimleri
için bir örnek atadığınızda sadece basit bir veri nesnesi yerine sahip olduğumu varsayalım, bir grup öğe ve bazı özelliklerim var. ViewModels yerine UserControls değiştirebilir ve her bir UserControl bile kendi ViewModel ve benzeri olabilir? –