小编Chr*_*rds的帖子

我如何在.Net中的lambda表达式中使用"=>"

我很少遇到任何其他程序员!

当我第一次看到令牌时,我的想法是"暗示",因为这就是它在数学证明中所读到的,但显然不是它的意义.

那么如何说或读"=>"如下: -

IEnumerable<Person> Adults = people.Where(p => p.Age > 16)
Run Code Online (Sandbox Code Playgroud)

或者甚至有一种商定的说法吗?

.net c# lambda conventions

159
推荐指数
7
解决办法
3万
查看次数

将WebForm视图引擎标记转换为Razor视图引擎标记的工具

是否(或将)存在将WebForm视图引擎标记(aspx)转换为Razor视图引擎标记(cshtml)的工具?

asp.net-mvc

27
推荐指数
2
解决办法
9977
查看次数

如何判断我的应用程序是否在RDP会话中运行

我有一个.net winforms应用程序,它有一些动画效果,淡入和滚动动画等.这些工作正常但是如果我在远程桌面协议会话中动画开始grate.

有人可以建议一种方法来确定应用程序是否在RDP会话中运行,这样我可以在这种情况下关闭效果吗?

.net rdp winforms

18
推荐指数
2
解决办法
7016
查看次数

后退按钮刷新页面

这里发布了一些类似的问题,但没有一个真正满足我的需求.

我在一个页面上有一个项目列表,我们称之为masterlist.aspx.如果我点击其中一个列表项,则会出现另一个页面,即details.aspx?id = something.

出现的页面在编辑模式下具有表单视图控件.如果用户想要编辑数据,他们会点击编辑链接按钮,然后将表单发送到编辑模式,然后他们编辑数据并单击保存按钮,保存数据并将表单视图重新置于查看模式.

问题是,如果用户使用浏览器后退按钮返回到masterlist.aspx页面,页面不会更新,则会将其从浏览器缓存中拉出.

我已经使用了HTTP标头缓存设置,但无法获得适用于所有主流浏览器的任何内容.在某些浏览器上,我收到网页过期警告.另一种选择是在使用客户端代码加载页面时以某种方式触发页面刷新(或部分页面刷新),但我无法弄清楚如何执行此操作.

是否有任何其他方法或有任何人成功使用上述两种方法,或者是否有某种方法可以完全避免这个问题.

asp.net

16
推荐指数
1
解决办法
2万
查看次数

透明窗口(或绘制到屏幕)无鼠标捕获

在我正在编码的应用程序中,我想要显示一条警告消息,显示一条大的半透明警告消息,而不会影响用户的工作.基本上我会淡化消息,但从不将它的不透明度设置为1,我希望用户能够点击"通过"消息,就好像它不存在一样.

我已经开始使用一个永远在顶部的窗口并将窗口样式设置为无,并将背景和透明度键设置为白色.在这个窗口中有一个带有大字体的标签,其中包含警告消息(稍后我可能会覆盖绘制事件并使用GDI绘制消息).我使用计时器通过拨打它的不透明度淡入消息,然后再次拨回它.它工作正常,因为焦点不是从任何应用程序中窃取,但透明表单捕获鼠标事件,而不是它下面的表单(实际上大多数透明形式不捕获鼠标事件,只有标签文本做).

此外,我不确定这是最佳方法,也许我应该以某种方式直接画在屏幕上.

我应该如何改进.

.net winforms

9
推荐指数
1
解决办法
2493
查看次数

如何将CMS添加到现有网站

我有一个现有的ASP.NET网站,我想毫不费力地添加CMS功能.

该网站是一个房地产经纪人的财产网站,并由数据库等支持,但有些网页,如"关于我们"等.我希望用户能够使用简单的CMS进行编辑.我还希望用户能够创建新页面并将它们放入导航系统.

该站点是多语言的,数据库部分使用资源文件来存储它使用的字符串.该站点使用ASP.NET母版页和主题,我希望CMS使用这些来添加新页面并支持多语言.

现在我可以清楚地编写我自己的简单CMS,但不想重新发明轮子是否有任何现有的ASP.NET CMS可以添加到现有站点并利用我已有的Master Pages模型.

编辑:我看过DNN,Umbraco,我的网页入门套件,Graffti CMS,Sitefinity.net,但据我所知,这些不能轻易复古.我还想避免(如果可能的话)使用FCK编辑器编写自己的系统.

提前致谢.

.net asp.net content-management-system

9
推荐指数
1
解决办法
1万
查看次数

将Linq中的外键设置为SQL

众所周知,如果已经加载了实体,则无法直接在Linq to SQL中设置外键ID.但是,您可以通过它的外键查找实体,然后使用实体关系将实体设置为外部实体.(为了简单起见,我在这里取出了枚举并使用了整数值).即如果我有一个加载的约会实体和一个相关的AppoinmentStatus实体,我不能这样做: -

ExistingAppointment.AppointmentStatusID = 7
Run Code Online (Sandbox Code Playgroud)

但我可以这样做: -

ExistingAppointment.AppointmentStatus = (From appstat In db.AppointmentStatus _
                                        Where appstat.StatusID = 7 _
                                        Select appstat).Single
Run Code Online (Sandbox Code Playgroud)

我有这样的事情乱丢我的代码,我想重构.所以...

我显然可以在这样的模块中使用辅助方法: -


Module Helper
    Public Shared Function GetAppointmentStatus(ByVal AppStatusID As Integer) As AppointmentStatus
        GetAppointmentStatus = (From appstat In db.AppointmentStatus _
                                       Where appstat.AppointmentStatusID = AppStatus _
                                       Select appstat).Single
    End Function
End Module
Run Code Online (Sandbox Code Playgroud)

我甚至可以把它变成一个扩展方法,就像这样.


Imports System.Runtime.CompilerServices
Module Helper
Extension()> _
    Public Shared Function GetAppointmentStatus(ByVal db as DataClassesDataContext, ByVal AppStatusID As Integer) As AppointmentStatus
        GetAppointmentStatus = (From appstat In …
Run Code Online (Sandbox Code Playgroud)

.net vb.net linq-to-sql

9
推荐指数
1
解决办法
7368
查看次数

如何判断Drag Drop是否已在Winforms中结束?

我怎么知道Drag Drop已经结束了WinForms .net.当拖拽正在进行时,我需要停止部分表单刷新数据视图.

我试过使用一个标志,但我似乎没有抓住我需要的所有事件来保持标志与拖放进度同步.具体来说,我无法判断拖拽操作何时结束而没有拖拽完成,即当用户将项目放在具有allow drop = false的控件上时,或者当用户按下ESC键时.

我见过这个问题: -

检查拖放是否正在进行中

但它没有令人满意地解决我的问题(如果有人给我这个问题的答案,我会回答那个答案和我已经有的答案).

.net winforms

8
推荐指数
1
解决办法
6263
查看次数

WinForm绑定场景中的Datacontext生存期

这个一直困扰我一段时间.但我不是专家.这有点长......

我有一个带有Outlook样式UI的WinForms应用程序.可以说左侧窗格上有一个栏,允许您选择一个"屏幕",这是一个WinForms控件,比如客户屏幕,在右侧窗格中会出现一个客户列表(即客户)控制).我将其称为资源管理器界面.双击记录将在另一个窗口中显示非模态客户记录,就像在Outlook中打开电子邮件一样,我们称之为检查员.如果双击多个记录,您将获得多个检查员.

整个过程都是使用数据绑定完成的.客户列表控件上有一个BindingSource控件,客户检查器上有另一个控件.客户控制在其加载事件中新闻静态DataContext,并将简单的Linq-To-SQL查询的结果分配给BindingControl数据源属性.双击客户列表时,事件会查找记录,将其转换为Linq-To-SQL客户对象,并将其提供给客户检查器表单的构造函数.客户检查器获取客户对象并将其BindingSource控件的datasource属性分配给它.

由于BindingSource控件支持IBindingList,因此在单击"确定"按钮时,在此应用程序中调用EndEdit时,不会修改客户对象的内容.由于Linq to SQL实现了INotifyPropertyChanged接口,因此会更新客户列表.凉.

然而,当我想刷新客户列表的内容以获取其他用户所做的更改时,问题就出现了,我想每隔60秒就定期发生一次.如果我有一个计时器并在同一个datacontext上重新运行查询,则不会选择任何更改,因为Linq to SQL不希望压缩对datacontext控制下的数据所做的任何更改.奇怪的是,它针对数据库运行查询,但身份跟踪意味着只有从数据库返回的新客户对象才会添加到列表中.如果我新建了另一个datacontext,那么任何开放的客户检查员都不再使用相同的datacontext,因此未来对开放客户检查员的任何更改都不会反映在客户列表中.

基本上数据是陈旧的,因为我没有使用工作单元模式.所以(如果你还在我身边),问题是.

1.在这种情况下,我该如何使工作单元模式工作?ASP.NET很容易使用请求范围的datacontext,它很短暂,但在WinForms中?

2.在这种情况下,是否还有其他ORM可以更好地工作?NHibernate,EF,LLBLGEN等

我该怎么办呢?

并且.

4.如果我可以使Linq to SQL工作,那么任何人都在Linq to SQL部分类中实现IBindingList,这将避免我不得不使用IBindingSource控件.(我不确定我应该关心这个).

5.如果我可以使Linq to SQL工作,那么在SQL 2008中是否有任何使用SQL Notifications的方法,这样我可以在基础查询结果发生变化时得到通知,然后重新查询,而不是轮询.

谢谢!

PS我知道我可以使用

db.Refresh(System.Data.Linq.RefreshMode.KeepChanges, customers)
Run Code Online (Sandbox Code Playgroud)

但这会导致针对列表中每个客户的记录针对数据库运行查询.

.net data-binding linq-to-sql winforms

6
推荐指数
1
解决办法
3060
查看次数

从继承类自动创建构造函数的Visual Studio快捷方式

假设我从具有多个"重载"构造函数的类继承.

顺便说一句,Visual Studio中有一个捷径,它在派生类中使用与默认类相同的签名编写构造函数,并使用样板代码调用MyBase.New(...)并插入参数我?

编辑:据我所知,内置没有这样的快捷方式,但雷蒙德建议在resharper中有一个.

vb.net visual-studio-2008 visual-studio

6
推荐指数
1
解决办法
4008
查看次数