2017-02-15 8 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イベントを購読しています。それが発生すると、periodStartperiodEndのプロパティが更新されます。私が質問で言ったように、私は純粋なxamlを使用することができましたが、これは私がうまくいっている解決策です。

関連する問題