2009-08-11 32 views
25

Ví dụ đơn giản nhất về việc ràng buộc các mục của TabControl với ObservableCollection là gì?Làm cách nào để liên kết các mục của TabControl với một bộ sưu tập quan sát được trong wpf?

Nội dung của mỗi tab sẽ có dữ liệu duy nhất và dữ liệu này thực sự sẽ có thể quan sátCollections ràng buộc của nó đối với các thành phần của mục.

Hiện tại tôi có quyền kiểm soát người dùng, mà tôi muốn đặt làm nội dung của mỗi tab ngay khi tab được tạo. Tôi cũng cần phải tự động đặt datacontext của điều khiển người dùng mới này khi tab được tạo. Vì vậy, về cơ bản, tôi muốn observablecollection tabcontrol chứa modelviews rằng bản đồ để các dữ liệu trong mỗi tab.

Trên hết, tôi cần thực hiện tất cả những điều này mà không vi phạm MVVM trong WPF! Bất kỳ giúp đỡ?

Được đánh giá cao!

Trả lời

35

dụ cơ bản:

<Window.Resources> 

    <DataTemplate x:Key="templateForTheContent" DataType="{x:Type vm:TheViewModelType}"> 
     <v:YourUserControl/> 
    </DataTemplate> 

    <DataTemplate x:Key="templateForTheHeader" DataType="{x:Type vm:TheViewModelType}"> 
     <TextBlock Text="{Binding ThePropertyToDisplayInTheHeader}"/> 
    </DataTemplate> 

</Window.Resources> 

... 

<TabControl ItemsSource="{Binding YourCollection}" 
      ContentTemplate="{StaticResource templateForTheContent}" 
      ItemTemplate="{StaticResource templateForTheHeader}"> 
</TabControl> 
+10

Bạn biết đấy, WPF + MVVM có một đường cong học tập dốc như vậy, nhưng một khi bạn nhận được hang của nó là giải pháp thực sự rất thanh lịch và sạch sẽ. Cảm ơn sự giúp đỡ của bạn :) – bluebit

+0

Tôi đồng ý rằng WPF có một đường cong học tập dốc, nhưng tôi sẽ không nói rằng về mô hình MVVM ... thực sự nó cảm thấy khá tự nhiên khi bạn bắt đầu sử dụng nó :) –

+1

Miễn là các mẫu dữ liệu chỉ chứa các điều khiển chỉ đọc, cách tiếp cận này hoạt động. Nếu không, bạn phải cẩn thận: TabControl tạo lại chế độ xem mỗi khi bạn thay đổi trang tab, nghĩa là bạn đang mất trạng thái trực quan khi bạn chuyển từ tab này sang tab khác và sau đó chuyển lại. –

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