2017-02-15 31 views
0

我有一個ObservableCollection<LegEventItems>持有物品。我有一個時間表,我需要在此集合中獲得最早的日期期間開始屬性。我不確定要做到這一點的最佳方法是什麼。C#/ WPF綁定到集合中的最早日期

如果可能,我想在xaml中完成所有操作(除了創建屬性或轉換器)。我試圖創建一個轉換器,並使用它像這樣:

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

問題是價值觀不轉換得到更新。它在時間軸首次渲染時被調用一次,但是當更多項目從可觀察集合中取出/刪除時,它不會更新。

我已經在LegEventItems上納入了INotifyPropertyChanged。任何想法?

+0

當項目添加到集合或從集合中刪除項目時,未觸發綁定,因爲集合對象未被替換。您應該爲您的視圖模型添加一個'EarliestLegEventItem'屬性。 – Clemens

+0

@Clemens我沒有使用MVVM。此外,當物品被移除/添加時,什麼會更新屬性?它不斷需要更新,因爲我已經從不同的地方添加了項目。 – James

+0

不要使用靜態屬性 - 我嚴重懷疑它們是INotifyPropertyChanged機制的一部分,因爲接口是實例的東西。 – hoodaticus

回答

-1

找到了解決方案。我正在訂閱用戶控件類中的CollectionChanged事件(使用時間軸)。當發生火災時,我更新期間開始期間結束屬性。希望我能夠像我在問題中所說的那樣使用純xaml,但是這是一個解決方案,我可以跟着滾動。