C#字符串文件路径问题

我正在尝试为SoundPlayer对象设置文件路径 如果我的主项目文件夹中有一个声音文件夹。 我该如何发送 Soundplayer test = new Soundplayer(“Sounds/Fireball.wav”);

以编程方式取消选中datagridview中的checkboxcolumn

如何以编程方式取消选中datagridview中DataGridViewCheckboxColumn中的所有行? 我可以使用复选框获取正确的值 (bool)row.Cells[CheckBoxColumn.Index].FormattedValue 但那只是一个吸气剂。 我已经尝试使用设置单元格的值 (bool)row.Cells[CheckBoxColumn.Index].value = false 但这不会影响FormattedValue。 我怎么解决这个问题?

C#Reflection SetValue()找不到set accessor

我使用reflection来更新已对其进行更新并保存到mongodb的对象 private void updateSelf(MongoDoc newDoc) { Type type = this.GetType(); foreach (var i in type.GetProperties()) { if (i.GetCustomAttributes(false).Any(x => x is MongoDB.Bson.Serialization.Attributes.BsonIgnoreAttribute)) continue; Object oldValue = i.GetValue(this, null); Object newValue = i.GetValue(newDoc, null); if (!Object.Equals(oldValue, newValue) && !((oldValue == null) && (newValue == null))) { i.SetValue(this, newValue, null); } } } 这大部分工作,但i.SetValue(this, newValue, null); 尝试更新此属性时抛出exception: […]

是EntityFramework 6中的IDbCommandInterceptor线程是否安全

使用DbInterception add方法注册时,IDbCommandInterceptor实例是否被视为线程安全? 我已经实现了一个符合IDbCommandInterceptor接口的类,并且当调用其中一个执行方法与调用相应执行方法的停止时间相比时,它跟踪命令的开始时间。 我将这些信息存储在私人ivar列表中,需要知道我正在做的事情是否安全。

如何成功写入字节数?

我正在做一个项目,将代码从C ++转换为C#用于打印机。 我用C#中的SerialPort.Write()替换C ++中的WriteFile() 。 C# public void Write( byte[] buffer, int offset, int count ) C ++ BOOL WINAPI WriteFile( _In_ HANDLE hFile, _In_ LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped ); 在C ++中,我可以获得用lpNumberOfBytesWritten编写的字节数。 如何在C#中做同样的事情?

sqlite无法识别通用列表

在Windows商店应用程序项目中,我从Web服务获得一个JSON,如下所示: http : //paste2.org/jfMJ2AGA 我有这两个class public class media { public string id { get; set; } public string type { get; set; } public string image { get; set; } public string video { get; set; } public string snapshot { get; set; } public string url { get; set; } public string snapshot_url { […]

将分隔符添加到要显示的项目列表中

我有一个项目列表,我希望在C#中显示它们之间的分隔符。 使用普通的迭代器,我会在开头或结尾处添加一个额外的分隔符: string[] sa = {“one”, “two”, “three”, “four”}; string ns = “”; foreach(string s in sa) { ns += s + ” * “; } // ns has a trailing *: // one * two * three * four * 现在我可以使用for循环来解决这个问题: ns = “”; for(int i=0; i<sa.Length; i++) { ns += sa[i]; if(i != […]

绑定到ObservableCollection的列表框不会更新

我使用ObservableCollection来存储Windows的环境变量。 class VariableVieWModel { ObservableCollection vars; public ObservableCollection Variables { get { return vars; } set { vars = value; } } public VariableViewModel() { Reload(); } public void Reload() { // Code to retrieve vars } } 此ObservableCollection绑定到ListBox。 我在GUI中添加了一个按钮来重新加载变量,在点击时,它调用Reload()过程。 但是,ListBox内容不会更改,并且在调用Reload()时我无法再将项添加到列表中。 在构造函数下,一切正常。 ListBox XAML: 我尝试使用PropertyChanged作为UpdateSource触发器并设置大多数模式。 public void Reload() { vars = new ObservableCollection(); RegistryKey systemVarKey […]

Gridview EditItemTemplate DropDownList获取SelectedValue

在我的Gridview中,我有以下模板字段: <asp:DropDownList ID="ddlDeptCode" runat="server" SelectedValue='’ DataSource=” DataTextField=”DeptCode” DataValueField=”DeptCode” /> 当我在一行上单击“编辑”时,它会很好地工作,它会使用所有值填充DropDownList,并为该行选择正确的值。 但是,当我尝试更新行时: OnRowUpdating=”UpdateRow” protected void UpdateRow(object sender, GridViewUpdateEventArgs e) { GridViewRow row = UserGV.Rows[e.RowIndex]; DropDownList ddl = row.FindControl(“ddlDeptCode”) as DropDownList; string deptCode = ddl.SelectedValue; } 它找到DropDownList控件,但SelectedValue始终为空字符串。 我需要访问所选值以保存到数据库。 关于如何在代码中的Gridview中获取DropDownList的SelectedValue的任何想法? 编辑: 您还可以从后面的代码填充DropDownList和SelectedValue: protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if ((e.Row.RowState & DataControlRowState.Edit) […]

VS2010 COM互操作错误解决方法? (INetFwMgr)

( 编辑 :解决了,解决方案很简单 – 在2008SP1中构建,使用生成的Interop.NetFwTypeLib.dll并将其用作第三方程序集。感谢Rick Sladkey。) 我已经升级了一些引用COM对象到VS 2010的代码(下面)。仍然在.Net 3.5上。 从那时起构建就被打破了:( The type or namespace name ‘INetFwMgr’ could not be found (are you missing a using directive or an assembly reference?) )… 我发现了一个微软的bug ,有人说: SDK 4.0 tlbimp.exe总是导入第一个,它不遵循正确的流。 即使您手动调用tlbimp.exe并给出正确的路径。 这是问题的根本原因。 驻留在非默认流中的任何COM dll将与4.0的tlbimp.exe具有相同的问题。 接下来是: SDK 3.5 tlbimp.exe没有此问题。 解决方法是使用3.5 tlbimp.exe从完整路径手动导入Interop程序集,因为它存储在注册表中并在项目中引用此Interop程序集。 有人可以解释一下解决方法吗? (我尝试了明显的tlbimp COM_DLL /out=OUT_DLL ,没有好处)。 有人遇到过另一个COM吗? 谢谢! 注意:XP …… […]