如何懒惰评估wpf:DataGrid,仅在需要时检索数据

我有一个WPF数据网格,绑定到一个由数据库中的linq-to-sql填充的列表。 绑定是双向的,允许用户更改每行中的值 当显示大约20000行时,程序在列表初始化期间因内存不足exception而崩溃。 即使行数较少,性能也会变得难以忍受。 我知道在初始化时,datagrid遍历每一行来测量最大列宽和其他属性。 对于所有行,它显然会这样做,无论它们是否在屏幕上。 我尝试将datagrid绑定到myQuery.ToList() (以允许通过单击列对数据网格进行排序)或直接绑定到IQueryable。 (排序不适用于此) 两者都产生相同的结果。 仅具有20000个项目的ToList()不会导致大量内存消耗,只有当它绑定到数据网格时才会发生这种情况。 忽略数据网格中20000行有用的问题(这些是当前的要求;更改那些工作示例会有所帮助)。 什么是懒惰加载当前显示在屏幕上的数据的最简单方法,并忽略其他所有内容,直到它滚动到视图中? 这可以在没有第三方库和主要代码更改的情况下完成吗? 如果没有,推荐的解决方法是什么?

如何将方法名称传递给另一个方法并通过委托变量调用它?

我有一个方法,包含指向另一个类的委托变量。 我想通过此委托调用该类中的方法,但将方法的名称作为字符串传递给包含委托的方法。 如何才能做到这一点? 用reflection? Func ? 编辑: 我现在明白,反思可能不是最好的解决方案。 这就是我所拥有的: private static void MethodContainingDelegate(string methodNameInOtherClassAsString) { _listOfSub.ForEach(delegate(Callback callback) { //Here the first works, but I want the method to be general and // therefore pass the method name as a string, not specfify it. callback.MethodNameInOtherClass(); //This below is what I am trying to get to work. […]

分组通过Lambda表达式使用两列以上的列

我必须在lambda表达式中转换我给定的linq查询。 即 var scholars = (from scholar in db.Scholars join suspension in db.Suspensions on scholar.ID equals suspension.ScholarID where suspension.StartDate >= startDate && suspension.EndDate x.Suspensions.Sum(y => y.SuspensionDays)) }) .ToList() .OrderBy(x=> x.FullName);

c# – 在ObjectListView中更改组的颜色

在ObjectListView中构建组时,如何更改组的颜色? 在默认组中,深蓝色前景色显示为深蓝色线条。 我该怎么改变它?

拆分具有最大字符限制的字符串

我试图将一个字符串拆分成许多字符串(List),每个字符串都有一个最大字符数限制。 所以说如果我有一个500个字符的字符串,并且我希望每个字符串的最大值为75,则会有7个字符串,最后一个字符串不会有完整的75个字符串。 我已经尝试了一些我在stackoverflow上找到的例子,但他们“截断”了结果。 有任何想法吗?

如何将树视图中的所有文件夹添加为具有嵌套的节点

我在一个文件夹下有一组目录。 目录结构不是100%一致的(例如,在A下可能存在文件夹中的文件夹但不在B下)。 我需要使用适当的嵌套绑定树视图中的所有文件夹(例如C:\ a \ b嵌套在C:\ a下)。 是否有一种简单的方法,甚至免费的树视图,让我这样做? 谢谢

winform中的图标按钮布局

我正在使用Windows 8,VS 2012.我在我的按钮上添加了一个圆形图标: this.btn.Image = Properties.Resources.icon; this.btn.Size = Properties.Resources.icon.Size; 我的表格也有背景图片: this.BackgroundImage = Properties.Resources.sunset; 但是我变得丑陋,我的图标按钮是方形的:中间的圆形图像和角落的灰色。 问题是如何显示表单背景而不是灰色? 感谢您的关注

MVC:如何根据值更改Html.Grid行的颜色?

我想知道如何更改Html.Grid中行的颜色,如果’Completed’布尔属性等于true。 这是一个示例网格: @Html.Grid(Model.ExampleList).Columns(c => { c.For(a => string.Format(“{0:dd/MM/yyyy}”, a.DateRequested)).Named(“Date Requested”); c.For(a => a.Comment).Named(“Comment”); c.For(a => a.Completed).Named(“Completed”); }) 任何帮助将不胜感激。 谢谢。

Action Vs事件Action

是 public event Action delt = () => { Console.WriteLine(“Information”); }; 一个重载版本 Action delg = (a, b) => { Console.WriteLine( a + b); }; ? 我的意思是Action delegate是“事件动作”的重载版本?

无法使用ASP.NET会话状态提供程序连接到Redis服务器

我一直试图用Redis替换ASP.NET Session一段时间了。 使用Redis的Microsoft ASP.NET会话状态提供程序的多个小时没有结果。 我们为Redis提供了本地Sentinel配置。 最初我认为这不起作用,因为提供商不支持Sentinels。 我切换连接字符串以使用主服务器,希望我至少能够建立连接。 依然没有。 我已尝试为此提供程序进行多种配置,并不断收到“无法连接请求”或“其他信息:无法连接到redis服务器;要创建断开连接的多路复用器,请禁用AbortOnConnectFail。UnableToResolvePhysicalConnection on PING“。 以下是我尝试过的一些配置: 尝试#1: 尝试#2: 尝试#3: 我发现这个提供商的文档很少,故障排除一直是个挑战。 与Microsoft提供商相比,我遇到了第三方提供商,并决定尝试使用它。 我能够使用以下配置成功连接Harbour.RedisSessionStateStore : 有了这个想法,Microsoft提供商的连接字符串的正确格式是什么? 我可以更容易地从第一方图书馆获得内部支持,而在这一点上,让这项工作成为一种道德上的胜利。 此外,如果有人知道我如何配置它来命中Sentinel并确定要连接的主实例,我会欢迎博客文章或任何关于该主题的知识分享。 谢谢!