2011-06-15 22 views
14

Tôi biết rằng tôi có thể nhận được tất cả các quan điểm đã đăng ký trong một khu vực với:Làm cách nào để có chế độ xem hiện hoạt hiện tại trong một vùng bằng PRISM?

var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList(); 

và tôi có thể thấy có đoạn mã sau:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews 

mà là đưa ra một danh sách của Active View, nhưng tôi có khu vực của tôi gắn liền với một ContentControl mà luôn luôn có một ActiveView duy nhất. Tôi có hiểu lầm hoặc có cách nào để có được chế độ xem đang hoạt động không?

Trả lời

12

var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();

+0

Điều tuyệt vời đó hiệu quả, nhưng làm cách nào để chúng tôi có một bộ sưu tập cho điều đó? –

+2

vì [SingleActiveRegion] (http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.regions.singleactiveregion.aspx) thừa kế Vùng –

+0

Có cách nào để lấy các máy ảo hiện có bằng cách sử dụng IoC hay không container (trong trường hợp của tôi DryIoc)? Tôi đã thử 'this == _Container.Resolve ' từ 'ShellViewModel' và nó được đánh giá là' false'. – Shimmy

5
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault(); 

Đây không phải là chính xác, vì nó sẽ chỉ mang lại bất cứ điều gì quan điểm cho rằng đã kích hoạt đầu tiên. không phải là chế độ xem hiện hoạt/hiển thị.

Không thể tìm thấy giải pháp trực tiếp, mặc dù không liên quan đến triển khai tùy chỉnh trên Chế độ xem hoặc Chế độ xemMô hình.

+0

Thú vị !! , nhưng vào thời điểm đó là những gì tôi cần. Bạn có thể cho biết thêm chi tiết ? –

Các vấn đề liên quan