Tôi có một giao diện người dùng WPF khá cơ bản theo đó yêu cầu người dùng gây ra một tab mới để mở trong TabControl của tôi. TabControl là ràng buộc để một ObservableCollection<ViewModelBase>
Câu hỏi về Quản lý ViewModel (DesignTime Vs Run Time)
tôi thêm trường hợp ViewModel vào bộ sưu tập này, và nội dung các tab tương ứng được hiển thị dựa trên các mẫu như thế này:
<DataTemplate DataType="{x:Type viewModels:UserUploadsViewModel}">
<userControls:UserUploads />
</DataTemplate>
Bây giờ chúng ta hãy nói rằng bên trong UserUploads kiểm soát tôi muốn dây lên một máy ảo trong XAML để giúp đỡ với các thiết kế, như thế này:
<UserControl x:Class=".....UserUploads"
.....
DataContext="{Binding Source={StaticResource ViewModelLocater},
Path=UserAdministrationViewModel}">
thuộc tính này sẽ trả về một VM với các dịch vụ trực tiếp trong thời gian chạy, và một máy ảo với dữ liệu giả lúc thiết kế.
Câu hỏi: XAML này có can thiệp vào những gì tôi đang làm trong việc ràng buộc nội dung TabItems với cá thể ViewModel hay không và dựa vào dataTemplate ở trên để hiển thị Chế độ xem phù hợp? Nếu vậy, có cách nào để có được cả hai khái niệm này để làm việc cùng nhau?
Điều đó có vẻ tuyệt vời. Vì vậy, nếu đó là thời gian thiết kế, đó (thiết kế mô hình xem thời gian) đối tượng sẽ được dây lên, nhưng lúc chạy nó sẽ không làm gì? –
Có, nó được thêm vào cho sự pha trộn. – anivas
Tuyệt vời! Sử dụng 'IsDesignTimeCreatable = True' sẽ điền vào khung nhìn với dữ liệu. Nếu được đặt thành 'False', nó sẽ chỉ cung cấp" hình dạng "của dữ liệu, cung cấp hỗ trợ ràng buộc dữ liệu đầy đủ trong nhà thiết kế, thay vì ràng buộc một cách mù quáng. Ngoài ra, bạn có thể sử dụng tệp .xaml để chỉ định đầy đủ dữ liệu mẫu với '{d: DesignData}'. Xem [Hướng dẫn: Sử dụng DesignInstance để Liên kết với Dữ liệu trong Nhà thiết kế] (http://msdn.microsoft.com/en-us/library/dd490796 (VS.100) .aspx) và [Hướng dẫn: Sử dụng Dữ liệu Mẫu trong WPF Designer] (http://msdn.microsoft.com/en-us/library/ee823176 (v = vs.100) .aspx) – cod3monk3y