Trong sản phẩm của chúng tôi, chúng tôi sử dụng phương pháp tiếp cận mô hình MVVM đầu tiên và nó hoạt động độc đáo nhưng với một báo trước. Khi xem trở nên phức tạp, cần có thời gian để tạo nó từ mẫu dữ liệu. Nếu chế độ xem được hiển thị và ẩn thường xuyên, chế độ xem sẽ trở nên hơi khó chịu. Nếu sử dụng khung nhìn đầu tiên, sẽ đủ dễ dàng để lưu vào bộ đệm chế độ xem nếu cần - nhưng khi sử dụng DataTemplate và mô hình đầu tiên, chúng tôi không có nhiều quyền kiểm soát chế độ xem. Bất kỳ ai đã giải quyết vấn đề này mà không cần chuyển sang phương thức xem đầu tiên?Có thể cache chế độ xem khi sử dụng phương pháp tiếp cận mô hình đầu tiên không?
Trả lời
với phương pháp tiếp cận viewmodel đầu tiên tôi nghĩ bạn không có cơ hội để "cache" chế độ xem. vì vậy bạn có thể xem xét để sử dụng xem đầu tiên và một bộ định vị viewmodel cho các luồng công việc datatemplates nặng. here là giải pháp khi sử dụng bảng kê với danh sách.
nhưng có thể có giải pháp nào có ghi đè cơ chế datatemplate wpf?
chỉnh sửa: điều gì xảy ra nếu bạn chỉ tạo "markerview" cho chế độ xem của mình, do đó, wpf datatemplate có thể tìm thấy nó. và sau đó trong chế độ xem điểm đánh dấu này, bạn tạo/bù nước lại chế độ xem thực? một cái gì đó giống như một định vị dịch vụ xem?
Hoạt động tốt nếu sử dụng ý tưởng @blindmeis.
Các công thức chung:
Tạo một ContentControl hoặc UserControl tên ViewCache:
public partial class ViewCache
{
public ViewCache()
{
InitializeComponent();
Unloaded += ViewCache_Unloaded;
}
void ViewCache_Unloaded(object sender, RoutedEventArgs e)
{
Content = null;
}
private Type _contentType;
public Type ContentType
{
get { return _contentType; }
set
{
_contentType = value;
Content = ViewFactory.View(value); // use you favorite factory
}
}
}
Trong DataTemplate, sử dụng ViewCache, vượt qua các loại quan điểm thực sự bạn muốn sử dụng:
<Window.Resources>
<DataTemplate DataType="{x:Type TestViewCache:Foo}">
<TestViewCache:ViewCache ContentType="{x:Type TestViewCache:View }"/>
</DataTemplate>
</Window.Resources>
<StackPanel>
<ContentPresenter Height="200" Width="300"
Content="{Binding ViewModel}"/>
<Button Content="Set VM" Click="SetVMClick"/>
<Button Content="UnSet VM" Click="UnSetVMClick"/>
</StackPanel>
Cảm ơn nhưng sẽ tốt hơn để viết var control = xem dưới dạng Kiểm soát; control.DataContext = DataContext; Nội dung = lượt xem; –
Xin chào Sergey, tôi đang tìm một giải pháp cho bộ nhớ cache xem và tìm thấy việc triển khai của bạn. Tôi không hoàn toàn hiểu làm thế nào tôi sẽ truy cập vào mô hình xem từ viewmodel cha mẹ sau đó. Tôi có phải truy cập vào 'ViewCache' không? Và thay đổi quan điểm được thực hiện như thế nào trong mô hình khung nhìn chính? – derape
- 1. MVC .Net Cascade Xóa khi sử dụng mã EF Phương pháp tiếp cận đầu tiên
- 2. Sử dụng công cụ di chuyển EF4 với phương pháp tiếp cận kiểu mẫu đầu tiên
- 3. Mô hình chất béo, Chế độ xem gầy và Chế độ xem câm, cách tiếp cận MVVM tốt nhất?
- 4. Zend Framework: Sử dụng Mô hình và Chế độ xem, các phương pháp hay nhất
- 5. Phương pháp hay nhất tiếp cận nhiều chế độ xem trong thiên thạch?
- 6. Tiếp cận Cancan của 'có thể' phương pháp từ một mô hình
- 7. Mô hình chế độ xem chung?
- 8. gọi phương thức trong mô hình từ chế độ xem
- 9. Trình xem chế độ xem mô hình, cách chuyển đối tượng giữa chế độ xem?
- 10. UIBarButtonItem với chế độ xem tùy chỉnh không hiển thị sau khi xem lần đầu tiên
- 11. MVC: Trình điều khiển chế độ xem mô hình - Chế độ xem có gọi là Mô hình không?
- 12. Chuyển đổi EF cho phương pháp tiếp cận cơ sở dữ liệu đầu tiên?
- 13. Mùi xấu khi xem xét mã ảnh hưởng đến phương pháp tiếp cận?
- 14. Cách tiếp cận tốt nhất để tách riêng Mô hình, Chế độ xem và Bộ điều khiển
- 15. Phương pháp tiếp cận API Profiling API
- 16. Cách đặt chế độ im lặng sau khi lưu mô hình lần đầu tiên
- 17. Sử dụng Marionette.ItemView cho chế độ xem không có mô hình?
- 18. Sử dụng chế độ xem SQL từ mã khung thực thể Phiên bản đầu tiên 5
- 19. Không thể sử dụng phương pháp mở rộng trong chế độ xem một phần
- 20. chế độ xem backbonejs không có mô hình
- 21. ViewModel của tôi có thể xem ObservableCollection của Chế độ xem hoặc Chế độ xem không?
- 22. QGraphicsView và QGraphicsItem: không quy mô mục khi mở rộng chế độ xem trực tiếp
- 23. Thừa kế mô hình có thể khi sử dụng chế độ xem được nhập mạnh mẽ trong MVC3?
- 24. Để sử dụng chế độ xem hoặc không sử dụng chế độ xem
- 25. Tìm Chế độ xem Backbone.js nếu bạn biết Mô hình?
- 26. Sử dụng chế độ xem có bazơ
- 27. Cách đặt dữ liệu mô hình trong ActionFilterAttribute khi sử dụng chế độ xem đã nhập
- 28. UINavigationController quay lại chế độ xem đầu tiên
- 29. Tại sao tôi nên sử dụng phương pháp tiếp cận N-Tier Khi sử dụng SqlDatasource là A LOT EASIER?
- 30. Khi nào có quyền sử dụng Chế độ xem thay vì Chế độ xem?
Neat ý tưởng về "markerview", tôi sẽ xem nếu nó hoạt động ... –
cho tôi biết nếu nó hoạt động;) – blindmeis