PresentationFramework与Live Shaping中的 "对象引用未设置为对象的实例"。
我的寿命过滤中的呈现框架中的null参考: 堆栈跟踪并没有给我太多线索: at System.Windows.Data.ListCollectionView.RestoreLiveShaping() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Thread
0 2024-04-16
编程技术问答社区
WPF MVVM结构的选定项目
我目前正在实施显示层次结构使用ListBoxes(请不要建议使用TreeView,ListBoxes). 看起来 类: public class Mountains : ObservableCollection { public ObservableCollection Lifts { get; } public string Name { get; } } public class Lift { public ObservableCollection Runs { get; } } 该示例使用CollectionViewSource实例(请参阅XAML)来简化设计. Mountains类的实例是窗口的DataContext. 问题是:我希望Mountains类具有SelectedRun属性,应将其设置为当前选择的运行. public class Mountains : Obse
0 2024-04-16
编程技术问答社区
在边界数据发生变化后重新排序WPF DataGrid
我正在寻找一种方法重新输入我的DataGrid当基础数据更改时. . (设置是非常标准的:datagrid的ItemSource属性属于ObservableCollection;列是DataGridTextColumns; dataGrid内部的数据对ObservableCollection内部的更改正确反应;当单击使用时,分类正常工作.鼠标) 有什么想法? 解决方案 这花了整个下午,但我终于找到了一个解决方案,令人惊讶的是简单, short 和 : 控制所讨论的UI控件的行为(此处a DataGrid)可能只需使用CollectionViewSource.它充当视图模型内部UI控制的一种代表,而无需完全破坏MVMM模式. 在ViewModel中同时声明A CollectionViewSource和普通ObservableCollection,然后将CollectionViewSource包裹在ObservableCollection上: //
2 2024-04-12
编程技术问答社区
在同一个集合上有不同的过滤器的WPF多集合视图
我使用的是A ObservableCollection,其中两个ICollectionView用于不同的过滤器. 一种用于通过某种类型过滤消息,其中一种用于计算检查消息. 如您所见,消息过滤器和消息计数正常运行,但是当我取消检查时,消息从列表中消失了(计数仍在工作). 顺便说一句,很抱歉,我想包括所有相关的内容. XAML代码:
0 2024-04-12
编程技术问答社区
CollectionViewSource,如何过滤数据?
我将Combobox绑定到实体,但我要过滤数据. 到目前为止,我已经尝试了两种方法: "简单"一个:直接将过滤器直接应用于Objectset. linq到实体 设置一个过滤事件处理程序,如上所述 msdn 我对第一种方法感到满意,最重要的是,因为在数据库中生成的查询包含一个Where子句,因此并非所有整个数据都必须从远程DB中检索.... 但是,如果我想更改所应用的过滤,那么#2方法更加灵活,我已经按照MSDN上的示例进行了例外,但是我有一个例外,为什么? 所以,我的问题是: 1.哪种方法更好 2.为什么我会得到例外? 这是我的代码: private void UserControl_Loaded(object sender, RoutedEventArgs e) { //Do not load your data at design time. if (!System.ComponentModel
0 2024-04-11
编程技术问答社区
WPF数据网格每列的自定义排序
我有一个wpf datagrid绑定到CollectionViewSource,该数据包封装了ObservableCollection.此CollectionViewSource有两个主要目标: 1)通过T的特定属性将每个项目分组. 2)用a)对网格进行排序,主要是组名称(如上所述)和b)单个组项目.我正在通过将自定义ICOMPARER附加到CollectionViewSource的" CustomSort"属性来实现这一目标. 这在大多数情况下都可以很好地工作,但是一旦单击列标题,排序逻辑就会被覆盖.我不想禁用排序,但是我想知道是否可以为特定列分配自定义排序订单? 要使事情变得更清晰,假设用户单击" columna" - 目前,我的CustomSorter封装的分类逻辑已被覆盖,并且该属性现在对数据杂志进行了分类.我不想对所选属性进行排序,而是想逆转海关者的逻辑. 解决方案 我创建了一些附加的属性来处理此问题.我希望这对某人来说是派遣的! 首先 - 定
0 2024-04-11
编程技术问答社区
在WPF中,你能在没有代码的情况下过滤一个CollectionViewSource吗?
确实说明了这一切. 这不是我无法背后的代码.它只是对我很麻烦. 解决方案 如果您"尽力而为",您几乎可以在XAML中执行任何操作. 您永远不会在后面的代码中获取代码(好吧,如果您使用库,则不必写任何库,但该应用程序当然仍然依赖它),这是在这种特定情况下可以做什么的示例:
2 2024-04-10
编程技术问答社区
WPF: 绑定/应用于布尔属性的过滤器
我想相应地将过滤器应用于ListBox IsSelected CheckBox的属性. 目前我有这样的东西. xaml codebehind public ObservableCollection SomeItems { get; private set; } private void ApplyFilterHandler(object sender, RoutedEventArgs e) { if (_filterCheckBox.IsChecked.Value) CollectionViewSource.GetDefau
0 2024-03-31
编程技术问答社区
如何从CollectionViewSource中添加或删除一个项目?
我想将datagrid.itemsource绑定到带有匿名类型的列表中,因此我将其绑定到CollectionViewSource,但是我需要将项目添加或删除到列表中,但是我不知道如何? 解决方案 CollectionView和CollectionViewSource顾名思义,只有视图.您只能操纵原始系列.如果您希望自动反映在UI中的更改,则应使用ObservableCollection. 我建议不要使用匿名类型进行数据绑定.但是,如果您必须 - 他们实现了等值方法,因此您应该能够使用具有同等属性或使用项目索引的新项目删除项目.
10 2024-03-31
编程技术问答社区
WPF数据网格每列的自定义排序
我有一个wpf datagrid绑定到CollectionViewSource,该数据包封装了ObservableCollection.此CollectionViewSource有两个主要目标: 1)通过T的特定属性将每个项目分组. 2)用a)对网格进行排序,主要是组名称(如上所述)和b)单个组项目.我正在通过将自定义ICOMPARER附加到CollectionViewSource的" CustomSort"属性来实现这一目标. 这在大多数情况下都可以很好地工作,但是一旦单击列标题,排序逻辑就会被覆盖.我不想禁用排序,但是我想知道是否可以为特定列分配自定义排序订单? 要使事情变得更清晰,假设用户单击" columna" - 目前,我的CustomSorter封装的分类逻辑已被覆盖,并且该属性现在对数据杂志进行了分类.我不想对所选属性进行排序,而是想逆转海关者的逻辑. 解决方案 我创建了一些附加的属性来处理此问题.我希望这对某人来说是派遣的! 首先 - 定
4 2024-01-02
编程技术问答社区
是否可以使用CollectionView与LongListSelector进行分组?
我试图与CollectionView结合使用Longlistslector.似乎CollectionView具有所有需要的"东西",但是当我连接两者时,什么也不会发生.这是我到目前为止所拥有的: 在我的控件的CTOR(包含LLS的人)中,我构造了CollectionView: GroupDescription group = new PropertyGroupDescription("FullName", new FirstLetterConverter(true, true)); m_view.GroupDescriptions.Add(group); 然后,只要相关依赖属性(包含我想放入LLS的列表的列表)更改时,我就会将其分配给m_view并将这些组分配给项目库: private void FriendsChanged() { m_view.Source = Friends; friendList.ItemsSource = m_view.Vi
2 2023-12-17
编程技术问答社区