我有一个看起来像这样的课程:
public class BasePadWI
{
public WorkItem WorkItemReference { get; set; }
.... Other stuff ......
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个字典,定义如下:
public Dictionary<BasePadWI, Canvas> Pad { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想打个电话:
List<WorkItem> workItems = Pad.Keys.ToList();
Run Code Online (Sandbox Code Playgroud)
(注意:WorkItem是一个密封的类,所以我不能继承.)
我是否可以在课堂上做些诡计让它看起来像WorkItem?
我在此期间做到了这一点:
List<WorkItem> workItems = Pad.Keys.ToList().ConvertAll(x=>x.WorkItemReference );
Run Code Online (Sandbox Code Playgroud) 我有一个文本框,当它被禁用时,其中的文本是灰色的,有点抖动.(这是标准功能.)
有没有办法让这更容易看到?
我试过这个:
txtBoxNumber.Enabled = false;
txtBoxNumber.ForeColor = Color.Black;
Run Code Online (Sandbox Code Playgroud)
那没有效果.
注意:这是一个.net Compact Framework应用程序,但我没有用CF标记问题,因为我认为它对于普通的.net是相同的.
我是一名C#dev,拥有Windows桌面应用程序的大部分经验.我想在Windows 7手机平台上开始开发.
从哪里开始?它会与VS2008一起使用还是需要VS 2010?如何为手机应用程序开发添加模板以及如何添加win 7模拟器?
我需要安装什么才能开始使用Windows 7手机开发?只是下载SDK将完成工作?
在单个项目(即程序集)中,内部属性是否与public属性有什么不同?
我没有看到任何区别,但我想确保没有我想到的边缘情况.
所以我有以下代码:
// Get the current user
_currentUser = WindowsIdentity.GetCurrent();
// Get the list of address for the current user
_dataMap = new DataMapDataContext();
_addresses = _dataMap.Addresses
.Where(address => address.InsertUserName == _currentUser.Name).ToList();
Run Code Online (Sandbox Code Playgroud)
....
_addresses.Add(form.Item);
_dataMap.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
当我调用SubmitChanges时,数据库中没有保存任何内容.这是为什么?我错过了这一点吗?我认为使用linq to sql你只需要在你的查询结果中添加项目,然后调用SubmitChanges就可以了....显然我错过了一些东西.
如果您使用"ToList",它现在有效吗?如果没有,那么如何将东西插入集合中?(我不认为Add是IQueryable的一部分.)
我需要学习棱镜(用于评估我的工作).
我对我应该用来学习的版本感到困惑.我从网站上看到有一个版本4.0有活跃的下降.我也看到以前的版本是2.2.
我应该学习哪个版本?我不想学习2.2如果4.0是一个剧烈的变化.但是,大多数视频和博客文章大约是2.2,所以,如果我应该从4.0开始,那么我在哪里可以获得产品的介绍和如何使用它的基础知识?
此外,我会感谢任何好的教程或链接(当然除了codeplex网站:)
注意:我将使用Visual Studio 2010和C#4.0.
我试图让我的IEventAggregator允许我在一个模块中发布和事件,并在另一个模块中捕获它.我在单个模块/项目中尝试了下面的代码,效果很好.它只在我有一个模块/项目发布事件而另一个订阅它时失败.
我已经通过统一将我的IEventAggregator注入到两个模块中.
我有3个项目,其中两个有模块(称为A和B),一个只是一个普通的类库(称之为接口)
在类库接口中有以下代码:
public class RandomTestEvent : CompositePresentationEvent<string>
{
}
Run Code Online (Sandbox Code Playgroud)
在模块A中,按钮单击命令中存在此代码(这实际上在项目中的视图模型中):
var evt2 = _eventAggregator.GetEvent<RandomTestEvent>();
evt2.Publish("Testing");
Run Code Online (Sandbox Code Playgroud)
在模块B中有以下代码:
public void Initialize()
{
var evt2 = _eventAggregator.GetEvent<RandomTestEvent>();
evt2.Subscribe(OnRandomThingDone);
}
private void OnRandomThingDone(string obj)
{
MessageBox.Show("Random Event Done With: " + obj);
}
Run Code Online (Sandbox Code Playgroud)
我可以追踪,我看到订阅被调用.当我看到Publish geting时调用者说Subscriptions = 1(因此它知道订阅已经完成,所以我似乎没有2个不同的IEventAggregator实例.)
但OnRandomThingDone永远不会在发布后调用.
任何想法为什么?(我需要发布更多代码吗?如果有,请告诉我.)
说我有这样一个类:
public class FauxIdentityForm
{
public Guid FormID { get; set; }
public event EventHandler Closed;
public void TheObjectWasClosed(EventArgs e)
{
Closed(this, e);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在TheObjectWasClosed方法中调用Closed事件.但是,如果在不同的类中(即使在同一个文件中),我有一个这样的方法:
public void CallTheEvent()
{
FauxIdentityForm _formIdentity = new FauxIdentityForm {FormID = Guid.NewGuid()};
_formIdentity.Closed(_formIdentity, null); // <-- Does not compile!
}
Run Code Online (Sandbox Code Playgroud)
对Closed的调用被编译器击落(它希望我只使用+ =和 - =).
那么,实际上是只允许在类中允许的事件?这是限制吗?
如果是这样,它周围有吗?如果没有,为什么C#的创作者会这样做?(这有时会使事件变得非常困难.我想有一个很好的理由,它可能会让我远离自己,但我想知道它.)
我的公司正在研究ASP.NET和Prism.我们想知道我们可以在两个选项之间获得多少代码重用.
正如我所看到的,Prism有这些"部分":
在我看这个时,唯一必须与Silverlight/WPF一起使用的部分是Regions.
shell可能有点棘手,但我认为它可以在ASP.NET应用程序中完成.我也认为模块(非区域提供模块)也应该可行.使用IEventAggregator和Unity应该很容易.
我唯一的问题是我在ASP.NET编程方面并不是很有经验,所以我不确定我的假设.我会喜欢一些熟悉Prism和ASP.NET的人反馈,然后再讨论这个问题(在我的公司).
基本上,我想制作将运行Web服务和业务逻辑的Prism模块.然后,我想要使用这些模块并在ASP.NET应用程序和WPF/Silverlight Prism模块(通过区域)中重新使用它们.
我是否通过尝试合并这两个系统来绘制一段艰难的旅程?
我为windows phone 7创建了一个应用程序,我想为我的应用程序添加乱序分析,然后我在App.xaml.cs文件中实现了启动会话和结束会话.现在我想为我的应用程序包含针对LogError的Flurry Agent和LogEvent?