2012-12-04 39 views
6

Tôi cần tải vùng dựa trên RegionName được liên kết. Somehing nhưWPF + PRISM Cách thay đổi vùng tại thời gian chạy

<ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}" 
        Grid.Column="2"/> 

Tất cả các khu vực đã được đăng ký đúng cách. Nếu tôi thay đổi giá trị của CustomRegionName khu vực không bao giờ thay đổi. Tôi có thể làm cái này như thế nào?

Trả lời

5

Hành vi này là do khu vực đã được tải vào cây trực quan. Bạn có thể thay đổi ứng dụng của mình một chút để bạn duy trì tên vùng nhưng tải nhiều chế độ xem vào khu vực. Bằng cách này bạn sẽ có thể chọn xem đang hoạt động trong khu vực và tự động thay đổi màn hình hiển thị của điều khiển nội dung bằng cách sử dụng các giao diện IRegionViewManager và IRegion tức

IRegion region = regionManager.Regions["RegionName"]; 
object view = container.Resolve<SomeView>(); 
object view2 = container.Resolve<SomeView2>(); 

region.Add(view); 
region.Add(view2); 

Sau đó, nơi bạn muốn hiển thị một cái nhìn đặc biệt ở đâu đó else Tiêm IRegionManager và sau đó gọi

region.Activate(whichever view); 
+0

cảm ơn .. có vẻ tốt với tôi. Tôi sẽ thực hiện điều này. –

+0

nó hoạt động tuyệt vời. cám ơn nhiều, ông bạn –

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