Sadece WPF'deki MVVM modeli ile çalışmaya başladım ve kodumu yapılandırmanın en zarif yolunun görünüm modelini yapının yapıcısına enjekte etmesine karar verdim.MVVM - Görünümün varsayılan bir kurucuya sahip olması gerekiyor mu?
Her şey yolunda ve iyi, ancak ReSharper, XAML'de görünümümün varsayılan bir kurucuya sahip olmadığına dair bir uyarı veriyor. Bunun, eğer gerekiyorsa XAML'de görünümümü oluşturabileceğimi varsayıyorum, ama bu sadece bir tahmindir.
Görüşümün yapıcıda bir görünüm modelini almasını gerektirerek ne vazgeçiyorum?
Düzenleme: Bence yapıcı şöyle görünür:
public ExampleView(ExampleViewModel viewModel)
{
if (viewModel == null) throw new ArgumentNullException("viewModel");
DataContext = viewModel;
}
Cevap: Ben DesignTime ad test ve tasarım kez ViewModel sürümlerini kadar alay içerir nereye kurmak aşağıdaki yerleşmiş destek. Eğer tasarımcı desteğine ihtiyaç olmadığını varsayarsak
ExampleView.xaml.cs
public ExampleView()
{
InitializeComponent();
}
public ExampleView(IExampleViewModel viewModel)
: this()
{
DataContext = viewModel;
}
ExampleView.xaml
<UserControl
x:Class="Wpf.Examples.ExampleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DesignTime="clr-namespace:Wpf.Examples.DesignTime">
<UserControl.DataContext>
<DesignTime:ExampleViewModel/>
</UserControl.DataContext>
</UserControl>
DataContext'i kurucuya ayarlıyorum, bunun için daha iyi bir şablon var mı? –
Fabrika Kullanımı? DataContext'i manuel olarak ayarlayın Boş bir varsayılan kurucu oluşturun? –