列表項我當前必然要在我看來,一個列表框的ObservableCollection<MyObject>
。 MyObject
有一個枚舉屬性,我們會打開和關閉(以及其他屬性)。使用綁定,有沒有辦法過濾集合並只顯示打開或關閉的項目?只綁定有特定屬性的
回答
你應該看看CollectionViewSource
和過濾功能。
如果你想要做純MVVM過濾,你可以有你的ViewModel揭露ICollectionView
類型的屬性,將您想要的任何過濾器,然後綁定到從XAML該屬性。
視圖模型:
public ICollectionView MyCollectionView { get; set; }
public ViewModel()
{
var items = new List<string>
{
"Apple",
"Orange"
};
MyCollectionView = CollectionViewSource.GetDefaultView(items);
// Will only display items starting with "A".
MyCollectionView.Filter = item => ((string)item).StartsWith("A");
}
XAML:
<ListBox ItemsSource="{Binding MyCollectionView}"/>
你可能要考慮一個collection view,或執行視圖模型中篩選自己。
是否可以過濾'CollectionViewSource'純XAML或者你需要的代碼隱藏? –
@DennisE:有時它是不容易,但任何你可以在XAML做可以做的代碼隱藏,反之亦然。 –
@DennisE:一個簡單的搜索返回這個...... http://stackoverflow.com/questions/6461826/in-wpf-can-you-filter-a-collectionviewsource-without-code-behind –
- 1. WPF綁定到具有特定屬性的對象的屬性
- 2. 綁定屬性只有一次(如bindonce)
- 3. 自定義屬性沒有綁定的綁定屬性
- 4. 綁定特定附加屬性的值
- 5. WPF綁定到特定的屬性
- 6. 綁定屬性
- 7. 活動管理定製過濾只有特定的屬性
- 8. 綁定屬性parent屬性
- 9. 將雙向綁定到只讀屬性
- 10. DataTrigger綁定到只讀屬性
- 11. Aurelia:如何觀察綁定對象的特定屬性(自定義屬性)
- 12. 綁定鍵綁定的鍵屬性
- 13. 綁定多個模特屬性
- 14. 具有特定屬性值
- 15. 具有特定屬性
- 16. 具有特定屬性
- 17. 的XPath - 獲取,只有具有特定屬性的孩子
- 18. 只有的BindingList的某些屬性綁定到數據網格
- 19. 父屬性綁定
- 20. QML屬性綁定
- 21. Silverlight屬性綁定
- 22. 綁定類屬性
- 23. 綁定UserControls屬性
- 24. 綁定ListBox.SelectedItem屬性
- 25. XAML綁定屬性
- 26. MouseDragElementBehavior綁定屬性
- 27. 在綁定屬性
- 28. wcf綁定屬性
- 29. Java屬性綁定
- 30. 綁定HTML屬性
是否可以在純XAML中過濾「CollectionViewSource」或者是否需要隱藏代碼? –
您可以通過在視圖模型中進行過濾來過濾純MVVM中的集合而不存在隱藏代碼。看到我更新的答案。 –
這工作。我將不得不圍繞它來修復一些與我的代碼相關的問題,但這肯定會讓我走上正軌。謝謝! –