Tag: collectionviewsource

CollectionViewSource,如何过​​滤数据?

我将ComboBox绑定到实体,但我希望过滤数据。 到目前为止,我尝试了两种方法: “简单”一:通过LINQ to Entities将filter直接应用于ObjectSet 设置过滤事件处理程序,如msdn所述 我对第一种方法感到满意,首先是因为生成到数据库的查询包含WHERE子句,所以不是所有的数据都必须从远程数据库中检索…. 但是,#2方法更灵活,如果在运行时我想更改应用的过滤…我已经按照msdn上的示例,但我得到一个例外,为什么? 所以,我的问题是: 1.哪种方法更好 2.为什么我得到例外? 这是我的代码: private void UserControl_Loaded(object sender, RoutedEventArgs e) { //Do not load your data at design time. if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)) { //Load your data here and assign the result to the CollectionViewSource. System.Windows.Data.CollectionViewSource myCollectionViewSource = (System.Windows.Data.CollectionViewSource) this.Resources[“tSCHEDEViewSource”]; // If I use this I get the data […]

在ViewModel中使用CollectionViewSource的正确方法

我使用Drag和Drop将Data Source对象(DB模型)绑定到DataGrid (基本上遵循WPFentity framework数据绑定中的这个示例)。 这个实现一切正常。 XAML .. 代码背后 private void Window_Loaded(object sender, RoutedEventArgs e) { System.Windows.Data.CollectionViewSource categoryViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource(“categoryViewSource”))); _context.Categories.Load(); categoryViewSource.Source = _context.Categories.Local; } 视图模型 public MainWindow() { InitializeComponent(); this.DataContext = new MyViewModel(); } 但是,当我尝试在ViewModel中使用相同的代码时,它不起作用( FindResource不可用),此外,我不认为这是正确的方法(即在MVVM中使用x:Key )。 我非常感谢任何帮助,指出使用DataGrid实现CollectionViewSource和DataBinding的正确方法。

每列的WPF DataGrid CustomSort

我有一个绑定到CollectionViewSource的WPF DataGrid,它封装了一个ObservableCollection。 此CollectionViewSource有两个主要目标: 1)按T的特定属性对每个项目进行分组。我在GroupDescription中使用ValueConverter来获取我想要的分组行为。 2)通过a)主要对组名称(如上定义)和b)各个组项目对网格进行排序。 我通过将自定义IComparer附加到CollectionViewSource的’CustomSort’属性来实现此目的。 这在大多数情况下都很有用,但是只要单击列标题,就会覆盖排序逻辑。 我不想禁用排序,但是我想知道是否可以为特定列分配自定义排序顺序? 为了使事情更清楚,假设用户单击“ColumnA” – 此时,我的CustomSorter封装的排序逻辑被覆盖,DataGrid现在按该属性排序。 我宁愿颠倒CustomSorter的逻辑,而不是按所选属性进行排序。

在WPF中,您可以在没有代码的情况下过滤CollectionViewSource吗?

真的,这个主题说明了一切。 并不是说我不能拥有代码。 它只是唠叨我。