我有可能有一個ObservableCollection作爲類中的一個屬性,但訂閱它的CollectionChanged事件並在ObservableCollection屬性上調用OnPropertyChanged來更新一個綁定到集合的UI綁定? -是否有可能通過CollectionChanged事件對ObservableCollection屬性的NotifyChanged?
回答
而不是綁定到集合和使用轉換器,您可以公開只讀的ItemNames屬性。在Items.CollectionChanged事件處理您提出一個PropertyChanged事件的itemNames的財產
public class ViewModel
{
public ViewModel()
{
Items = new ObservableCollection<Item>();
Items.CollectionChanged += (o, e) => NotifyPropertyChanged("ItemNames");
}
public ObservableCollection<Item> Items { get; private set; }
public string ItemNames { get { return String.Join(",", Items); } }
}
是的,但通常你不會因爲開銷而想做那樣的事情。如果您使用帶有ItemsSource
的控件,則他們知道如何處理CollectionChanged
而無需重新創建所有內容。
我結合在一個網格的DataColumn的性質和使用的IValueConverter到的ObservableCollection轉換爲逗號分隔字符串。我明確知道這不是過去的路,因爲我無法過濾等。我知道這可以作爲我的類中的只讀屬性如何通知從收集後只讀字符串屬性已更改已經改變? – 2012-04-01 00:13:30
@ChristopherLeach:只需訂閱CollectionChanged事件併爲持有該字符串的屬性觸發PropertyChanged事件。 – 2012-04-01 00:29:39
只有hickup是該類是從WCF服務生成的。我試圖用只讀字符串屬性生成一個部分類客戶端,並附加了CollectionChanged事件處理程序,但是這不會在整個服務中分散使用。我應該在一個新類中繼承WCF類,並將事件鏈接到那裏嗎? – 2012-04-01 02:10:29
- 1. ObservableCollection和CollectionChanged事件
- 2. 是否可以訂閱ObservableCollection上的CollectionChanged事件?
- 3. 的ObservableCollection CollectionChanged事件problum
- 4. 處理的ObservableCollection CollectionChanged事件
- 5. 的ObservableCollection CollectionChanged事件沒有引發
- 6. C#:ObservableCollection - 爲什麼沒有通用的「CollectionChanged」事件?
- 7. AS3 - 是否有可能通過對象屬性搜索數組?
- 8. 的ObservableCollection和CollectionChanged事件作爲WCF datacontract
- 9. WPF - 數據綁定ObservableCollection CollectionChanged事件?
- 10. 是否有可能通過它的值獲取屬性c#
- 11. 如何檢查的ObservableCollection的「CollectionChanged」事件爲空或不是
- 12. 是否有可能通過配置覆蓋persistence.xml屬性?
- 13. 是否有可能通過PowerShell'更新'ADF管線屬性
- 14. 是否有可能通過jQuery獲取嵌入標籤屬性?
- 15. neo4jphp:是否有可能通過屬性檢索節點?
- 16. 是否有可能通過屬性來分解渲染用戶?
- 17. CollectionChanged事件不是在靜態ObservableCollection上觸發
- 18. ObservableCollection中的屬性是否需要PropertyChangedEvent
- 19. 的ObservableCollection觸發太多CollectionChanged
- 20. 的ObservableCollection CollectionChanged沒有幫助在WPF MVVM
- 21. 是否有必要檢查CollectionChanged事件中的NotifyCollectionChangedAction?
- 22. 從CollectionChanged事件
- 23. CollectionChanged事件
- 24. 通過.On()沒有事件屬性的jQuery傳遞對象
- 25. 是否有可能通過EasyMock的
- 26. 從CollectionChanged事件處理程序中的ObservableCollection中刪除項目
- 27. 是否有可能測試過程的事務性?
- 28. 是否有通用屬性
- 29. 通過CSS屬性設置元素屬性,有可能嗎?
- 30. 如何克隆ObservableCollection <T> .CollectionChanged事件?
如果使用svcutil創建類,該怎麼辦?我會在客戶端生成readonly嗎?如果我從服務中接收數據,而不是在客戶端生成數據,該怎麼辦?我會在哪裏附加事件? – 2012-04-01 02:14:53
另外正在更改的集合在另一個集合中嵌套。 – 2012-04-01 02:23:34
我通過設置一個構造函數來接受它自己的類型作爲參數,然後複製值並創建一個新的ObservableCollection並將NotifyPropertyChanged調用附加到指定的CollectionChanged事件上。該字符串已更新。我只使用這樣的構造函數,因此可以安全地創建新的集合。我不確定這是否是最有效的方式,但它正在工作。非常感謝。 – 2012-04-01 05:55:03