我有两个列表,我需要比较它们,只返回不同时列出的项目列表.
var listOfIds = new List<int> {1,2,4};
var persons = new ObservableCollection<Person>
{
new Person {Id = 1, Name = "Person 1"},
new Person {Id = 2, Name = "Person 2"},
new Person {Id = 3, Name = "Person 3"},
new Person {Id = 4, Name = "Person 4"}
};
Run Code Online (Sandbox Code Playgroud)
在这个例子new Person {Id = 3, Name = "Person 3"}中将是结果.Linq解决方案将是首选.
我有一个带有单个TextBox的简单表单,以及OK和Cancel按钮.Form的AcceptButton和CancelButton设置正确,OK和Cancel按钮的DialogResult设置为'OK'和'Cancel'.
我想在TextBox中添加验证,这将阻止用户在验证失败时对表单进行确认,但这也将允许它们像往常一样取消.
默认情况下,在所有控件上,CausesValidation属性为True,但我在取消按钮上将其更改为False.
果然,单击"确定"或按Enter键将运行我连接到TextBox的验证事件.按取消按钮绕过验证,这是完美的.
然而,按Escape取消形式并没有执行一样按下取消按钮-它引发Validating事件,并防止使用者从离开.
是否有任何方法可以使Escape键按预期执行,即不提高Validating事件,就像按下取消按钮一样?
一个完整的解决方案是:
创建一个新的Windows窗体应用程序.将第二个表单添加到项目中.
在InitializeComponent()之后将此代码粘贴到Form1的构造函数中:
MessageBox.Show((new Form2()).ShowDialog().ToString());
Run Code Online (Sandbox Code Playgroud)
这显示了从我们的第二个表单传回的DialogResult.
在InitializeComponent()之后将此代码粘贴到Form2的构造函数中:
TextBox txtName = new TextBox();
txtName.Validating +=
new CancelEventHandler((sender, e) =>
{
if (txtName.Text.Length == 3)
{
MessageBox.Show("Validation failed.");
e.Cancel = true;
}
});
Button btnOk = new Button
{
Text = "OK",
DialogResult = DialogResult.OK
};
Button btnCancel = new Button
{
Text = "Cancel",
CausesValidation = false,
DialogResult = DialogResult.Cancel
};
FlowLayoutPanel panel = new FlowLayoutPanel();
panel.Controls.AddRange(new Control[]
{
txtName, btnOk, btnCancel
}); …Run Code Online (Sandbox Code Playgroud) 我使用JavaScript代码来调用MVC Web API.当前路径为:
http://localhost/myApp/Administrator
但是当前路径是:
http://localhost/myApp/Administrator/
我收到了错误The resource cannot be found.以下是代码:
$.getJSON("api/UserApi",
function (data) {
...
});
Run Code Online (Sandbox Code Playgroud)
我不想在代码中使用绝对URL,例如:
$.getJSON("http://localhost/myApp/api/UserApi",
function (data) {
...
});
Run Code Online (Sandbox Code Playgroud)
绝对URL确实可以正常工作,但缺乏灵活性.有没有办法做同样的事情如下?
$.getJSON("~/api/UserApi",
function (data) {
...
});
Run Code Online (Sandbox Code Playgroud)
ASP.NET支持用当前应用程序的根路径替换"〜"字符,例如:
http://localhost/myApp
但是,JavaScript文件中不支持"〜"字符.我如何完成同样的事情?
JavaScript是一个独立的文件,不能使用像ASP.NET这样的ASP.NET语句Url.Content.有没有更好的方法呢?
我找到了以下方法.有没有更好的解决方案?:
1)将以下代码写在.cshtml文件中
<script type="text/javascript">
var currentDomain = '@Url.Content("~")';
</script>
Run Code Online (Sandbox Code Playgroud)
2)currentDomain从.js文件中读取变量:
$.getJSON(currentDomain + "/api/UserApi",
function (data) {
...
});
Run Code Online (Sandbox Code Playgroud) 我有一个.NET类,我想在DataGridView中显示,默认的数据绑定 - 将DGV的DataSource设置为对象 - 产生90%的需求(即它正确输出公共属性,我可以轻松添加排序) .
但是,我需要绑定的属性之一是List,其中包含需要在其他数据绑定项之后的单独列中的数据.我坚持认为如何最好地实现这一点.
我的班级看起来像这样:
public class BookDetails
{
public string Title { get; set; }
public int TotalRating { get; set; }
public int Occurrence { get; set; }
public List<int> Rating { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以将Rating属性扩展为多个数字列,以便在运行时提供如下输出:
标题| 总评分| 发生| R1 | R2 | R3 ...... RN
将总评分计算为所有单个评级的总和也是有用的,但我现在手动更新而没有问题.
我一直在调查用于我正在设计的基于Web的新项目的数据层,我非常希望看到将LINQ加入SQL.它显而易见的简单性,灵活性和设计器支持确实很吸引人,并且与SQL Server的隐式绑定很好.
但是,最近已经宣布LINQ to SQL现在已经退回到实体框架,因为它已被传递给ADO.NET团队(http://blogs.msdn.com/adonet/archive/2008/10 /29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx).当然,它将在未来得到支持,但它不太可能会看到更多的开发工作.
考虑到这一点,您是否会建议我将此技术用于我的项目,还是值得选择替代ORM(nHibernate?)或手动编写通用DAL?
该项目本身是基于ASP.NET和SQL Server 2005/2008的,并且可能会使用MVC,即使它仍处于测试阶段.这是一个个人项目,数据库不会过于复杂,主要用作查看.NET未来技术的原型.我将基于我从这一方面学到的东西来建立未来项目,所以我做出的选择将影响更大的解决方案.
是的,我意识到微软可能会在明天推出一种全新的数据访问技术!;)
我有一个针对.NET Framework 4的现有Windows窗体桌面应用程序,并希望为其添加Windows 8触摸支持.
目前该程序在Windows 8中运行良好,我可能只是调整一些元素的大小,使其在触摸设备上更加用户友好.但是,添加手势(如数据网格上的双指缩放)以及滑动对其他元素的支持将大大有助于使应用程序在仅触摸环境中更加现代化.
我正在投资Visual Studio 2012,这将让我以.NET 4.5和新的Windows 8功能为目标,但有没有人知道任何可以帮助我更新我的应用程序的资源?我特别关注以下内容:
这绝不是一个详尽无遗的清单,但我非常感谢那些可能在过去接近过类似升级的人的建议.
我想从我的web.config.[environment]转换文件中引用我在部署项目中定义的变量(作用于环境).当我这样做时,变量引用最终会在转换后的web.config中结束,而不会被替换.
我的头衔看起来像
(10) - lorem ipsum
(101) - lorem ipsum
(1) - lorem ipsum
lorem ipsum
Run Code Online (Sandbox Code Playgroud)
我想(number)在开始时检查我的标题是否包含
string.match(/^(+[0-9]+)+$/);
Run Code Online (Sandbox Code Playgroud)
我对正则表达式不擅长,有人可以帮忙说出什么问题吗?
.net ×5
c# ×3
winforms ×3
javascript ×2
asp.net ×1
data-binding ×1
datagridview ×1
linq ×1
linq-to-sql ×1
list ×1
orm ×1
path ×1
regex ×1
touch ×1
validation ×1
windows-8 ×1