jjzjj

setValue

全部标签

c# - XPathNavigator.SetValue 抛出 NotSupportedException

我有以下代码,其最后一行在每次执行时都会导致NotSupportedException,而且我还没有找到绕过它的方法。这个假设的类似代码找到一本具有特定标题的“书”,目的是将其更新为新标题。它确实找到了正确的节点,但无法更新它。XPathDocumentxpathDoc=newXPathDocument(fileName);XPathNavigatornav=xpathDoc.CreateNavigator();XPathNavigatornode=nav.SelectSingleNode(@"//Book[Title='OldTitle']/Title");node.SetValue

c# - 使用数组的 SetValue 方法与 [] 索引器

我注意到数组有SetValue方法,当您只能使用索引器时,这似乎有点不合适。SetValue有什么特殊用途吗?MSDN文章似乎并没有说明SetValue的用途,只是说明了如何使用它。就速度而言,使用哪种方法效率更高? 最佳答案 有时你所拥有的数组只是一个数组。Array类没有索引器,因此在其上设置/获取元素值的最佳方法是通过GetValue和SetValue方法。例如:privatevoidM(Arrayarray){array[0]=5;// 关于c#-使用数组的SetValue方法与

c# - 通过反射在数组中设置值

有没有办法在C#中通过反射在数组属性中设置单个值?我的属性是这样定义的:double[]Thresholds{get;set;}对于“普通”属性,我使用这段代码通过反射来设置它:PropertyInfopi=myObject.GetType().GetProperty(nameOfPropertyToSet);pi.SetValue(myObject,Convert.ChangeType(valueToSet,pi.PropertyType),null);我将如何更改此代码以在任意位置设置数组属性中的值?谢谢!顺便说一句:我尝试使用索引参数,但这似乎只适用于索引属性,不适用于数组属性.

c# - 在 WPF M-V-VM 中撤消,它如何适应?

在我以前的项目中,我已经用c++实现了撤销系统,我知道它是如何工作的。我也知道命令模式。我将实现一个C#/WPF桌面应用程序,并希望我的设计基于M-V-VM模式。应用程序将:是一个相对较小的项目(1名开发人员预计工作2-3周)拥有一个具有持久性的简单数据模型(linqtoXML)支持撤销/重做我想知道是否有人在遵循M-V-VM模式时有过实现撤消系统的经验。它如何适合它?它如何从INotifyPropertyChanged和INotifyCollectionChanged通知中获益,以便在实现模型(业务对象)时需要最少的工作。我认为撤消系统会以某种方式集成到ViewModel层中,因为它

c# - 如何以编程方式更改我的 Windows 桌面墙纸?

我想使用C#为WindowsXP设置壁纸。我已经开发了代码,因此它可以在Windows7中完美运行,但显然它在XP中不一样。我将该墙纸添加为资源,将其编译操作设置为Content和Alwayscopy。奇怪的是,它在桌面的属性对话框中设置了正确的墙纸名称。但是,未设置墙纸。我的代码如下所示:publicsealedclassWallpaper{Wallpaper(){}constintSPI_SETDESKWALLPAPER=20;constintSPIF_UPDATEINIFILE=0x01;constintSPIF_SENDWININICHANGE=0x02;[DllImport(

c# - PropertyInfo 实例上的 SetValue 错误 "Object does not match target type"c#

在以前的项目中的不同地方使用了带有这段代码的Copy方法(处理具有相同命名属性但不派生自公共(public)基类或实现公共(public)接口(interface)的对象)。新的工作地点,新的代码库-现在即使在非常简单的示例中,它也会在SetValue处失败并显示“对象与目标类型不匹配”......并且它在上周工作......publicstaticvoidCopy(objectfromObj,objecttoObj){TypefromObjectType=fromObj.GetType();TypetoObjectType=toObj.GetType();foreach(System

c# - 以编程方式将程序注册到添加/删除程序中并将文件存储在可执行文件中

我正在开发一个WindowsC#控制台应用程序,我希望允许用户将其安装到他们的计算机上。我想让我自己的WindowsInstaller可执行,因为VisualStudio中内置了安装部署工具,似乎缺少自定义和文档功能。因此,因为我想制作自己的Windows安装程序,我该如何将我的程序注册到“添加/删除程序”窗口中,以便他们可以选择再次卸载它,如果他们愿意,它会重新启动我的安装程序以进行删除。此外,可执行文件显然需要将文件复制到PC上的不同位置,即C:\ProgramFiles那么我如何将可执行文件存储在Windows安装程序可执行文件中我可以将它们移动到正确的位置。这可能吗?感谢您提供

c# - Reflection.Emit 优于 GetValue 和 SetValue :S

有人告诉我使用Reflection.Emit而不是PropertyInfo.GetValue/SetValue,因为这样速度更快。但我真的不知道Reflection.Emit有什么东西,也不知道如何用它来替代GetValue和SetValue。有人可以帮我解决这个问题吗? 最佳答案 只是一个备选答案;如果您想要性能,但想要类似的API-考虑HyperDescriptor;这在下面使用了Reflection.Emit(因此您不必这样做),但在PropertyDescriptorAPI上公开了自身,因此您可以只使用:PropertyDe

javascript - 如何在不触发更改事件的情况下选中复选框?

我有一个简单的复选框:r=newExt.form.Checkbox({listeners:{check:function(checkbox,checked){}}}r.setValue(true);如何在没有fireevent检查的情况下选中复选框(我只想通过鼠标单击来进行fireevent检查)?(setValue不起作用)。 最佳答案 您应该在设置值之前暂停事件并在此之后恢复事件。例如:myCheckBox.suspendEvents(false);//Stopallevents.//Becarefulwithit.Dontfo

javascript - 使用 setValue angular 4 时,错误在位置 0 处缺少数字

我正在使用Angular4react形式,momentjs,和primengcalendar我打算使用setValue并尝试在包含日期的reactiveForm字段上使用patchValue。这个日期是通过primeng日历创建的。购买日期:2017年9月2日星期六00:00:00GMT+0100(GMT夏令时)我使用这个“日期”做一些事情,然后使用momentjs将日期转换为干净的格式以供后端接受(即YYYY.MM。DD)使用.moment().format(....但是,当我运行.setValue时,我收到以下控制台错误ERRORMissingnumberatposition0并且