WPF: свойство зависимости от Набора “только для чтения и не может быть установлено от разметки”

Я создаю пользовательский элемент управления для отображения трехмесячного календаря. Управление основано на Календарном управлении WPF (Инструментарий WPF 2009-06), и я хочу передать несколько из свойств Календаря до соответствующих свойств моего пользовательского элемента управления. Свойства пользовательского элемента управления настраиваются как Свойства Зависимости, и их базовые типы соответствуют типам свойств Calendar. Вот моя разметка:

<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>

Все свойства связывают без проблемы, за исключением SelectedDates свойство. Я получаю следующую ошибку на ее привязке:

Свойство 'SelectedDates' только для чтения и не может быть установлено от разметки.

Я подозреваю, что это потому что SelectedDates свойство является набором, но я не уверен, как решить проблему. Кто-либо может просветить меня на причине проблемы и предложить фиксацию?Спасибо за помощь.

9
задан Dave Clemmer 18 September 2011 в 01:11
поделиться

1 ответ

Если я вас хорошо понимаю, у вас в коде есть свойства зависимостей, которые совпадают по названию, и введите свойства Календаря управления в вашем пользовательском управлении. Вы пытаетесь назначить коллекцию SelectedDates различных элементов управления календаря одноименному свойству Dependency в своем коде позади него.

Это можно сделать с помощью строки кода:

this.SelectedDates=SlaveCalendar1.SelectedDates

В соответствующем EventHandler, который срабатывает при добавлении выбранной даты.

Даже если установить привязку к OneWayToSource, часть кода SelectedDates= является присваиванием. Поскольку свойство SelectedDates не имеет сеттера, написать этот фрагмент кода невозможно.

Здесь можно найти ссылку на документацию Календарного управления

.
2
ответ дан 5 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: