Tag: C#的

数据绑定dynamic数据

我有一组“dynamic数据”,我需要绑定到GridControl。 直到现在,我一直在使用属于System.Data命名空间的标准DataTable类。 这工作正常,但我已经被告知我不能使用这个,因为它太重的客户端和服务器之间的networking序列化。 所以我想我可以简单地复制DataTable类的“简化”版本,只需要一个List<Dictionary<string, object>> ,List代表行的集合,每个Dictionary代表一行列名称和值作为KeyValuePairtypes。 我可以设置网格的DataField属性来匹配Dictionary中的键(就像我为DataTable的列名所做的那样)。 但是做完之后 gridControl.DataSource = table; gridControl.RefreshDataSource(); 网格没有数据… 我想我需要实现IEnumerator – 任何帮助,将不胜感激! 示例调用代码如下所示: var table = new List<Dictionary<string,object>>(); var row = new Dictionary<string, object> { {"Field1", "Data1"}, {"Field2", "Data2"}, {"Field3", "Data3"} }; table.Add(row); gridControl1.DataSource = table; gridControl1.RefreshDataSource();

在WPF窗口中托pipe外部应用程序

我们正在WPF中开发一个布局pipe理器,该布局pipe理器具有可由用户移动/resize等的视口。 视图通常由布局pipe理器中的我们控制的提供者填充数据(图片/电影/等)。 我的工作是检查是否也有可能在视口中托pipe任何外部Windows应用程序(即记事本,计算器,Adobe阅读器等)。 我遇到了一些问题。 大多数资源指向使用HwndHost类。 我正在尝试从Microsoft本身的演练: http : //msdn.microsoft.com/en-us/library/ms752055.aspx 我已经适应了这个,所以列表框被外部应用程序的窗口句柄所取代。 有谁能帮我解决这些问题: 演练添加了一个额外的静态子窗口,其中放置了ListBox 。 我不认为我需要外部应用程序。 如果我省略了,我必须将外部应用程序设置为子窗口(使用user32.dll中的Get / SetWindowLong将GWL_STYLE设置为WS_CHILD )。 但是,如果我这样做,该应用程序的菜单栏消失(因为WS_CHILD风格),它不再接收input。 如果我使用子窗口,并使外部应用程序的一个孩子的东西合理的工作,但有时外部应用程序不画好。 另外,我需要子窗口调整到视口。 这可能吗? 当外部的应用程序产生一个子窗口(即记事本 – >帮助 – >关于),这个窗口不是由HwndHost托pipe(因此可以移动到视口外)。 有什么办法可以预防吗? 由于我不需要外部应用程序和布局pipe理器之间的进一步交互,我是否认为我不需要捕获和转发消息? (演练将HwndSourceHook添加到子窗口中,以捕获列表框中的select更改)。 当你运行(未修改的)例子VS2010并closures窗口时,VS2010没有看到程序结束。 如果你打破了一切,你最终会在没有源代码的情况下进行汇编。 有些臭味正在发生,但我找不到。 演练本身似乎是非常草率的编码,但我还没有find关于这个问题的更好的文档。 任何其他的例子? 另一种方法是不要使用HwndHost而是像这里讨论的WindowsFormHost 。 它工作(而且更简单!),但我不能控制应用程序的大小? 另外,WinFormHost是不是真的是这个意思? 感谢任何正确的方向指针。

在lambdaexpression式中不能使用ref或out参数

为什么不能在lambdaexpression式中使用ref或out参数? 我今天遇到了错误,发现一个解决方法,但我仍然好奇,为什么这是一个编译时错误。 这是一个简单的例子: private void Foo() { int value; Bar(out value); } private void Bar(out int value) { value = 3; int[] array = { 1, 2, 3, 4, 5 }; int newValue = array.Where(a => a == value).First(); }

模板专精VSfunction重载

一本教科书我注意到,你可以提供自己的实现标准库函数,如swap(x,y)通过模板专门化function重载。 这对任何可以从除了赋值交换以外的其他types都有用的types是有用的,比如STL containers (已经有了交换,我知道)。 我的问题是: 有什么更好的:模板专门化给你的专门的交换实现,或function重载,提供了你想使用没有模板的确切参数? 为什么更好? 或者如果他们是平等的,为什么呢?

使用互斥锁来防止同一程序的多个实例运行安全吗?

我正在使用此代码来防止我的程序的第二个实例同时运行,是否安全? Mutex appSingleton = new System.Threading.Mutex(false, "MyAppSingleInstnceMutx"); if (appSingleton.WaitOne(0, false)) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); appSingleton.Close(); } else { MessageBox.Show("Sorry, only one instance of MyApp is allowed."); } 我担心,如果引发exception,并且应用程序崩溃,互斥量仍将保留。 真的吗?

如何在Windows启动时运行C#应用程序?

我做了一个启动过程中启动的应用程序,下面的代码。 该进程在重新启动后在进程pipe理器工具上运行,但在屏幕上看不到应用程序。 当我从启动registry值打开相同的.exe文件时,程序运行完美。 // The path to the key where Windows looks for startup applications RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); // Add the value in the registry so that the application runs at startup rkApp.SetValue("MyApp", Application.ExecutablePath.ToString()); 我能做些什么来解决它?

在C#中使用静态variables是什么? 何时使用它? 为什么我不能在方法中声明静态variables?

我已经在C#中search静态variables,但我仍然没有得到它的用途。 另外,如果我尝试在方法内部声明variables,它将不会授予我执行此操作的权限。 为什么? 我见过一些关于静态variables的例子。 我已经看到,我们不需要创build类的实例来访问variables,但是这不足以理解它的用途以及何时使用它。 第二件事 class Book { public static int myInt = 0; } public class Exercise { static void Main() { Book book = new Book(); Console.WriteLine(book.myInt);//shows error why its shows me error?cant i access the static variable by making the instance of a class? Console.ReadKey(); } }

使用Linq获取集合的最后N个元素?

鉴于一个集合,有没有办法获得该集合的最后N个元素? 如果在框架中没有方法,写一个扩展方法来做这件事最好的办法是什么?

如何使用HTTP POST multipart / form-data将file upload到服务器

我正在开发Windows Phone 8应用程序。 我想通过使用带有MIMEtypesmultipart / form-data和名为“userid = SOME_ID”的string数据的HTTP POST请求通过PHP web服务上载SQLite数据库。 我不想使用像HttpClient,RestSharp或MyToolkit第三方库。 我试过下面的代码,但它不上传文件也不给我任何错误。 它在Android,PHP等工作正常,所以没有问题的Web服务。 以下是我的代码(WP8)。 它出什么问题了? 我GOOGLE了我的问题,但没有为我工作。 我没有得到具体的WP8 async void MainPage_Loaded(object sender, RoutedEventArgs e) { var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME); //Below line gives me file with 0 bytes, why? Should I use //IsolatedStorageFile instead of StorageFile //var file = await ApplicationData.Current.LocalFolder.GetFileAsync(DBNAME); byte[] fileBytes = null; using […]

将组件embedded到另一个组件中

如果您创build一个使用其他程序集的类库,是否可以将这些其他程序集embedded到类库中作为某种资源? 即,而不是让MyAssembly.dll , SomeAssembly1.dll和SomeAssembly2.dll坐在文件系统上,这些其他两个文件捆绑到MyAssembly.dll ,并在其代码中可用。 我也有点困惑,为什么.NET程序集是.dll文件。 .NET之前没有这种格式? 是所有的.NET程序集DLL,但不是所有的DLL都是.NET程序集? 为什么他们使用相同的文件格式和/或文件扩展名?