WPF:将虚拟文件拖放到Windows资源管理器中

我正在开发一个类似于dropbox的应用程序,我在WPF列表视图中显示远程文件。 我想拖动这些元素并将其放入Windows资源管理器中。 我见过这样的代码: var dataObject = new DataObject(DataFormats.FileDrop, files.ToArray()); dataObject.SetData(DataFormats.StringFormat, dataObject); DoDragDrop(dataObject, DragDropEffects.Copy); 但是你可能认为,那些文件还没有在本地系统上,在复制它们之前我需要连接到服务器,下载并解压缩文件。 就像一个ftp客户端一样。 我不知道怎么做,但我想知道是否有任何“掉落”事件或类似我能处理。 谢谢!

SGML解析器.NET建议

在我的C#项目中,我已经处理了解析SGML文件的任务,并且非常天真地尝试使用XmlReader,这导致了一些有趣的启示(即SGML与格式良好的XML之间的区别等) 。) 所以我想我只需要一个好的SGML解析器,将它转换为XML文件并从那里开始。 在我的搜索中,我找到了两个可以与我的C#项目集成的SGML解析器: MSDN的SgmlReader ,和 James Clark的SP SGML解析器 。 还有其他建议吗?

Listview ItemSelectionChanged发射两次?

我在C#中有一个带有ListView控件的Winforms应用程序。 此ListView显示TO-DO项目列表,我使用’ItemSelectionChanged’事件来处理更新。 问题是’ItemSelectionChanged’事件每次尝试进行更新时都会触发两次。 ItemSelectionChanged事件刷新表单以表示更新(即从列表中删除项目)。 有没有办法在刷新后禁用事件? UPDATE1: private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (e.IsSelected) { listView1.Items[e.ItemIndex].Remove(); listView1.SelectedIndices.Clear(); listView1.Focus(); listView1.Update(); } else { } }

我尝试这样做时出现模板错误?

我正在使用asp.net mvc 3并且我一直收到此错误,因为我没有使用模板,所以我不理解它。 我在局部视野中有这个 @model ViewModels.FormViewModel @Html.TextBoxFor(x => x.Due.ToShortDateString()) 在我的viewmodel中 public class FormViewModel { public DateTime Due { get; set; } public FormViewModel() { DueDate = DateTime.UtcNow; } } 我收到这个错误 模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

从XML文件推断出XmlSchema – 如何遍历XSD中的所有元素?

我有一个XML文件,我在运行时使用XmlSchemaInference类推断其XSD架构。 示例文件: 10 25 50 它确实有效 – 它很好地推断了架构: 问题是: 如何遍历(递归?)遍历此模式中的所有元素? 它们是如何由XmlSchemaSet类存储的? 我需要将它们呈现给用户,以便他们可以进行一些映射。 我正在从XmlSchemaSet.Schemas属性中检索XmlSchema ,然后是什么? XmlSchema.Elements只包含一个项目( products ),我找不到任何方法来查找其子元素。

在C#中使用Attributes中的变量

我们有一些归属良好的数据库代码,如下所示: [Display(Name = “Phone Number”)] public string Phone { get; set; } 由于它非常通用,我们想再次使用它,但在属性的Name部分使用不同的字符串。 因为它是一个属性,它似乎想要事物是const,所以我们尝试: const string AddressType = “Student “; [Display(Name = AddressType + “Phone Number”)] public string Phone { get; set; } 这似乎没有用,除了有一个const字符串意味着我们不能在任何基类中覆盖它,从而删除了我们原本打算添加的function,并暴露了我的问题: 有没有办法在属性中使用某种变量,以便我们可以inheritance并保留属性装饰?

将抽象readonly属性覆盖为读/写属性

我想只强制从基本抽象类在给定属性上实现C#getter。 如果需要,派生类可以为该属性提供一个setter,以供公共使用静态绑定类型。 给出以下抽象类: public abstract class Base { public abstract int Property { get; } } 如果我想要一个也实现了setter的派生类,我可以天真地尝试: public class Derived : Base { public override int Property { get { return field; } set { field = value; } // Error : Nothing to override. } private int field; } 但是后来我遇到语法错误,因为我试图覆盖不存在的setter。 我尝试了其他一些方法,例如声明基本setter私有等等,我仍然偶然发现所有类型的错误阻止我这样做。 必须有办法做到这一点,因为它不会破坏任何基类合同。 顺便说一句,它可以用接口完成,但我真的需要默认实现。 我经常偶然发现这种情况,我想知道是否有隐藏的C#语法技巧,否则我将使用它并实现手动SetProperty()方法。

UWP:检测app获得/失去焦点

我希望能够通过使用DisplayRequest类来阻止屏幕保护程序在我的应用程序使用时触发,但我只想在活动应用程序时执行此操作。 如果用户切换到另一个窗口/应用程序,那么我想像一个好公民,并再次允许屏幕保护程序。 我无法看到一种明显的方法来检测UWP应用何时获得/失去焦点(或被激活/停用)并且快速搜索并不能提供任何见解。 谁能指出我正确的方向?

使属性在DataGridView中可见但在PropertyGrid中不可见?

假设我有一个我希望在DataGridView中显示的属性,但是当PropertyGrid中显示相同的对象时却没有。 我知道我可以使用[Browsable(false)] ,但是它隐藏在两个视图中。 我也可以做一个gridView.Columns[“blah”].Visible = false; ,但这与我想要的相反,因为它隐藏在DataGridView中而不是隐藏在PropertyGrid中。 有没有办法反过来? (没有创建一个全新的DataTable只是为了保持相同的数据减去一个字段,而是将所有内容重新绑定到那个 – 这真的是一种做事的kludge方式。)或者,我可以使用一个向DataGridView添加列的解决方案在实际课程中没有出现。

CloudConfigurationManager不从app.config中获取ApplicationSettings

我有一个包含一些Azure帮助程序类的库。 在这些帮助程序类中,我获取了Azure帐户名和密钥等设置。 在Azure中运行时,这些设置将从云配置文件(cscfg)中获取。 一切正常。 为了在Azure之外对这些类进行unit testing(特别是RoleEnvironment),我在unit testing项目中创建了相同变量名的设置。 这些实际上保存在app.config文件中,并通过设置部分进行编辑,该部分位于我的测试项目的属性部分下。 我没有创建自己的从web.config / app.config设置中抽象云配置设置的方法,而是决定使用CloudConfigurationManager类。 但是,当我运行我的unit testing时,我的设置都没有被拾取,所以我只是得到了空值。 但是,如果我将app.config文件更改为使用下面的“appSettings”格式的设置,那么我会获得有效值。 这样做的缺点是我无法再使用visual studio中的设置编辑器页面编辑我的设置。 所以我的问题是我做错了什么,或者这是云配置管理器的限制,它只能拿起手动添加的appSettings而不是使用编辑器添加的applicationSettings? 以上作品,而以下不是: MySettingValue