2017-02-15 10 views
0

У меня есть ObservableCollection<LegEventItems>, который содержит предметы. У меня есть график, в котором мне нужно получить самую раннюю дату в этой коллекции для начала периода. Я не уверен, что лучший способ сделать это.C#/WPF привязывается к самой ранней дате в коллекции

Я хотел бы сделать это все в xaml (за исключением создания свойств или преобразователей), если это возможно. Я пытался создать конвертер и использовать его как таковой:

{Binding Source={x:Static cs:CurrentData.LegEventItems}, Converter={StaticResource earliestDateCnv}}

Этот вопрос значения не обновляются в конвертере. Он вызывается один раз, когда временная шкала сначала отображается, однако, когда большее количество элементов получает/удаляется из наблюдаемой коллекции, оно не обновляется.

Я уже зарегистрировал INotifyPropertyChanged на LegEventItems. Есть идеи?

+0

Связывание не инициируется, когда элементы добавляются или удаляются из коллекции, поскольку объект коллекции не заменяется. Вы должны добавить свойство «EarliestLegEventItem» к вашей модели представления. – Clemens

+0

@Clemens Я не использую MVVM. Кроме того, что бы обновить свойство, подобное тому, когда элемент удаляется/добавляется? Он постоянно должен быть обновлен, потому что у меня есть предметы, добавляемые из разных мест. – James

+0

Не используйте статическое свойство - я серьезно сомневаюсь, что они являются частью механизма INotifyPropertyChanged, поскольку интерфейсы, например, являются файлами. – hoodaticus

ответ

-1

Найдено решение. Я подписываюсь на событие CollectionChanged в моем классе управления пользователями (с временной шкалой). Когда это срабатывает, я обновляю periodStart и periodEnd Недвижимость. Хотелось бы, чтобы я использовал чистую xaml, как я сказал в вопросе, однако это решение, с которым я в порядке.