Tôi đang tạo điều khiển người dùng để hiển thị lịch ba tháng. Điều khiển dựa trên điều khiển Lịch WPF (WPF Toolkit 2009-06) và tôi muốn chuyển một số thuộc tính của Lịch thông qua các thuộc tính tương ứng của điều khiển người dùng của tôi. Thuộc tính điều khiển người dùng được thiết lập dưới dạng Thuộc tính phụ thuộc và các loại cơ bản của chúng khớp với các loại thuộc tính Lịch. Dưới đây là đánh dấu của tôi:WPF: Thuộc tính phụ thuộc của bộ sưu tập "là chỉ đọc và không thể được đặt từ đánh dấu"
<StackPanel>
<toolkit:Calendar Name="MasterCalendar"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar1"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=MasterCalendar, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar2"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=SlaveCalendar1, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
</StackPanel>
Tất cả các thuộc tính ràng buộc mà không vấn đề, trừ SelectedDates
tài sản. Tôi nhận được lỗi sau về ràng buộc của nó:
Thuộc tính 'SelectedDates' là chỉ đọc và không thể được đặt từ đánh dấu.
Tôi nghi ngờ rằng đó là vì thuộc tính SelectedDates
là một bộ sưu tập, nhưng tôi không chắc chắn cách khắc phục sự cố. Bất cứ ai có thể khai sáng cho tôi về nguyên nhân của vấn đề và đề nghị sửa chữa? Cảm ơn bạn đã giúp đỡ.
Đây là nơi tôi đang bối rối: Nếu tôi đi qua các giá trị từ, nói, SlaveCalendar1 đến tài sản điều khiển người dùng của tôi, tôi chỉ đang đọc SlaveCalendar1.SelectedDates; Tôi đang viết cho MyUserControl.SelectedDates, mà tôi đã xác định với một setter. Nói cách khác, MyUserControl.SelectedDates không phải là chỉ đọc, và đó là những gì tôi đang viết. Tại sao nó không hoạt động? –
Làm thế nào để bạn vượt qua SlaveCalendar1.SelectedDates đến this.SelectedDates? Tôi hiểu rằng bạn đang thực hiện nó thông qua việc thiết lập Chế độ ràng buộc thành OneWayToSource. Có vẻ như dòng mã này vẫn được hiểu là một bài tập, mặc dù bạn cần một setter. Có rất nhiều cách giải quyết! – Dabblernl
Vì vậy, nếu tôi hiểu chính xác, tôi không thể ràng buộc thuộc tính chỉ đọc, ngay cả khi ràng buộc là OneWayToSource; đó là một ràng buộc chỉ đọc từ thuộc tính chỉ đọc? Cảm ơn –