2012-06-09 53 views
1

考慮:約束力的評估機制

<TextBox Text='{Binding MyCollection[MyIndex].MyProperty}'/> 

其中:

  • MyCollectionMyClass項目可觀察集合
  • MyClass實現MyProperty(一string實際上)
  • MyClass實現INotifyPropertyChanged

然後,下一次綁定被重新評估,TextBox.Text究竟會從哪裏得到值?我能想到的兩個可能的來源:

  • 無論是實際包含的MyCollection的MyClass實例(即實際調用集合索引,以獲取更新的值
  • 存在於實例收集在綁定設置發生的時刻,即使它已經不在收藏中?

如果事實證明是前一種情況,我可以以某種方式接近後一種行爲嗎?

回答

1

綁定在重新評估時將使用整個綁定語法,包括調用索引器。

+0

這樣做。但是,當發生更改時,我無法捕獲索引器斷點,這就是爲什麼我要求...將不得不看其他地方:) – vines

+0

@vines有時將綁定實際更新是棘手的 - 提高PropertyChanged與字符串.Empty應該強制對視圖中的所有綁定進行全面的重新評估,這應該讓您看到這一點。 –

+0

整潔的技巧,謝謝:) – vines