Tôi chỉ mới bắt đầu với mẫu MVVM trong WPF và tôi đã quyết định rằng cách tao nhã nhất để cấu trúc mã của tôi là tiêm mô hình khung nhìn vào hàm tạo của khung nhìn.MVVM - Chế độ xem thực sự có cần phải có hàm tạo mặc định không?
Điều này là tốt và tốt, nhưng ReSharper đưa ra cảnh báo trong XAML rằng chế độ xem của tôi không có hàm tạo mặc định. Tôi giả định rằng điều này là để tôi có thể xây dựng quan điểm của tôi trong XAML nếu cần thiết, nhưng đó chỉ là một phỏng đoán.
Tôi đang từ bỏ điều gì bằng cách yêu cầu chế độ xem của tôi thực hiện mô hình xem trong hàm tạo?
Edit: xem constructor của tôi trông như thế này:
public ExampleView(ExampleViewModel viewModel)
{
if (viewModel == null) throw new ArgumentNullException("viewModel");
DataContext = viewModel;
}
Trả lời: tôi định cư trên những sản phẩm sau thiết lập, nơi không gian tên DesignTime chứa chế nhạo lên phiên bản của ViewModel để thử nghiệm và thiết kế thời gian ủng hộ.
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>
Tôi đang thiết lập DataContext trong hàm tạo, có mô hình nào tốt hơn cho điều này không? –
Sử dụng nhà máy? Đặt DataContext theo cách thủ công? Tạo một hàm tạo mặc định rỗng? –