Текст RibbonComboBox не сохраняет изменения

У меня есть следующий xaml в моем пользовательском интерфейсе:

<ribbon:RibbonGallery SelectedValue="{Binding Text}"
                      SelectedValuePath="Content"
                      SelectedItem="{Binding SelectedRemark, Mode=TwoWay}"
                      MaxColumnCount="1">
    <ribbon:RibbonGalleryCategory ItemsSource="{Binding Remarks}" DisplayMemberPath="Text"/>
</ribbon:RibbonGallery>

И SelectedRemark, и Remarks являются свойствами моей модели представления; и Примечания - это ObservableCollection<Remark>.

Он будет отображаться правильно, и я могу редактировать текст в поле со списком. Однако, как только поле со списком теряет фокус, оно возвращается к исходному тексту.

Я новичок в WPF и не могу понять, что я делаю не так.


person John Kraft    schedule 14.10.2010    source источник


Ответы (2)


Остерегайтесь ошибки, из-за которой событие selectionchanged срабатывает после перемещения мыши. См. этот отчет об ошибке: https://connect.microsoft.com/VisualStudio/feedback/details/666352/

person kevindaub    schedule 17.11.2011

Все эти привязки связаны с выбором. Я не уверен, как работает лента, но не похоже, что то, что вы пытаетесь сделать, даст вам результаты, к которым вы стремитесь.

Кроме того, ObservableCollection<Remark> является относительным только для позиции добавления/удаления при использовании привязки. Он не будет распространять изменения на элементы в коллекции. Если вам нужна эта функциональность, вам нужно будет реализовать INotifyPropertyChanged для объекта Remark, а затем при необходимости вызвать уведомление об изменении свойства.

person Aaron McIver    schedule 14.10.2010
comment
объект Remark реализует интерфейс INotifyPropertyChanged. Я думаю, именно поэтому я смущен тем, почему это не работает. Свойства, которые я использую для привязки данных, кажутся единственными доступными свойствами. Мне очень трудно найти какую-либо документацию для компонента ленты, которая показывает привязку данных к нему. - person John Kraft; 14.10.2010
comment
@Джон, я немного поработал с лентой. Вы используете последнюю (последнюю) версию от августа, верно? Я могу выкопать, чтобы увидеть, что у меня есть... для примера - person Aaron McIver; 14.10.2010
comment
да. Я использую финальную версию от августа. Большая часть документации и примеров, которые я нашел, относится к бета-версии прошлого года; и большинство свойств в этих примерах просто больше не существуют. - person John Kraft; 14.10.2010
comment
@Джон дурачился, пока безуспешно, пробовал разные вещи ... не уверен, что это возможно. Я бы предложил опубликовать на сайте MSDN... один из сотрудников MSFT, скорее всего, ответит, как только вы получите ответ, обновите этот пост, чтобы мы все могли узнать - person Aaron McIver; 14.10.2010