Tag: C#的

在MVVM WPF中打开新窗口

我有button,我已经将此button绑定到ViewModel命令说OpenWindowCommand。 当我点击button,我想要打开新的窗口。 但是从视图模型创build窗口实例并显示窗口违反了MVVM。 我已经创build了像 interface IWindowService { void showWindow(object dataContext); } 而WindowService像这样实现了这个接口 class WindowService:IWindowService { public void showWindow(object dataContext) { ChildWindow window=new ChildWindow(); window.DataContext=dataContext; window.Show(); } } 在这个类中我已经指定了ChildWindow。 所以这个类与显示ChildWindow紧密结合在一起。 当我想显示另一个窗口时,我必须使用相同的接口和逻辑来实现另一个类。如何使这个类是通用的,以便我可以传递任何窗口的实例,并且类将能够打开任何窗口? 我没有使用任何内置的MVVM框架。我已经阅读了很多关于StackOverflow的文章,但是我找不到任何解决scheme。

C#支持多inheritance吗?

我和一个同事对多重inheritance有一点争论。 我说这不是支持,他说的是。 所以,我想我会问networking上的一群聪明人。

如何从std :: map过滤项目?

我大致有以下代码。 这可以做得更好或更有效率? 也许使用std::remove_if ? 你能移走地图中的物品吗? 我们可以避免使用临时地图吗? typedef std::map<Action, What> Actions; static Actions _actions; bool expired(const Actions::value_type &action) { return <something>; } void bar(const Actions::value_type &action) { // do some stuff } void foo() { // loop the actions finding expired items Actions actions; BOOST_FOREACH(Actions::value_type &action, _actions) { if (expired(action)) bar(action); else actions[action.first]=action.second; } } actions.swap(_actions); […]

读取另一个进程使用的文件

我正在监视正在被服务器程序写入的文本文件。 每次更改文件时,内容都会输出到我的程序中的一个窗口中。 问题是我无法使用该文件的Streamreader ,因为它正在used by another process 。 使用ReadWrite设置文件stream将Filestream ,因为我无法控制使用该文件的进程。 我可以在记事本中打开文件。 即使服务器正在使用它,也必须能够访问它。 有没有一个好方法呢? 我应该做下面的事情吗? 监视文件 做一个临时副本,当它改变 阅读临时副本 删除临时副本。 我需要在服务器更改文件时获取文本。

初始化VCProjectEngineObject(Microsoft.VisualStudio.VCProjectEngine.dll)时出现错误80040154(类未注册的exception)

我试图运行此工具,以便将Visual C ++项目转换为生成文件。 我试图转换项目的项目是在VS2008中编写的,所以我使用的是来自版本9的Microsoft.VisualStudio.VCProjectEngine.dll的引用。 它在这一行失败: VCProjectEngine vcprojEngine = new VCProjectEngineObject(); 除了以下例外: 检索具有CLSID {D19A00C4-A7F9-4E14-A5E01-D060B7EB57F3}的组件的COM类工厂失败,原因如下:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。 当试图用regsvr32注册VCProjectEngine.dll时,我得到一个错误,找不到入口点DllRegisterServer。 任何想法?? 提前致谢。

在Visual Studio 2013中更改项目端口号

如何在Visual Studio 2013中更改项目端口号? 我正在使用ASP.Net,我需要在Visual Studio 2013中debugging时更改端口号。

C#静态成员“inheritance” – 为什么这存在呢?

在C#中,超类的静态成员被“inheritance”到子类作用域中。 例如: class A { public static int M() { return 1; } } class B : A {} class C : A { public new static int M() { return 2; } } […] AM(); //returns 1 BM(); //returns 1 – this is equivalent to AM() CM(); //returns 2 – this is not equivalent […]

如何从字节数组创build位图?

我search了关于字节数组的所有问题,但是我总是失败。 我从来没有编码C#我在这方面是新的。 你能帮我怎么从字节数组中创build图像文件。 这是我的函数,它存储字节数组名为imageData public void imageReady( byte[] imageData, int fWidth, int fHeight))

有没有办法从方法返回匿名types?

我知道我不能写一个方法,如: public var MyMethod() { return new{ Property1 = "test", Property2="test"}; } 我可以这样做: public object MyMethod() { return new{ Property1 = "test", Property2="test"} } 但我不想做第二种select,因为如果我这样做,我将不得不使用反思。 为什么我想这样做: 今天我有一个方法在我的aspx页面返回一个datatable作为结果,我不能改变它 ,我试图将此数据表转换为一个匿名方法与我想要的属性。 我不想创build一个类只是为了做到这一点,因为我将需要多次执行相同的查询,我想创build一个返回匿名types的方法将是一个很好的理想。

从文件打开图像,然后释放locking?

我正在使用下面的代码行从文件中打开一个Image : pictureBox1.Image = Image.FromFile("test.png"); 我期望它locking文件,将图像加载到内存,将pictureBox1.Image设置到内存中的副本,并释放locking。 实际上,只有当我将Image Dispose()放置在内存中时,锁才会消失。 我不能释放硬盘上我不再使用的文件上的锁,直到我摆脱了我正在使用的内存中的文件。 微软的网站在一个C#标签的文章中提到它,但是他们的解决scheme是用visual basic编写的,这对我来说是无用的。 总结:我想将pictureBox1.Image设置为存储在"test.png"的图像,然后让用户编辑或删除"test.png"等等。