看下一篇文章.原始的一个问题内容已被删除,因为没有任何意义.简单地说,我问过如何使用MVVM方式的XmlDataProvider将XML(我在解析DLL程序集时错误生成)绑定到TreeView.但后来我明白这种方法是错误的,我转而生成数据实体模型(只编写表示我想在树中公开的所有实体的类)而不是XML.
那么,结果在下一篇文章中.目前我不时更新这篇"文章",所以F5和
享受阅读!
使用MVVM.我创建了单独的菜单'Recent files',它从绑定中获取其项目.它看起来像这样:

<MenuItem Header="_Recent files" ItemsSource="{Binding RecentFiles, Converter={StaticResource RecentFilesToListOfStringsConverter}, Mode=OneWay}" >
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
现在,我想为每个自动生成的项添加Command,它应该获取路径作为命令参数并通过单击执行导入文件操作.
能否请您建议如何以MVVM方式完成?
阅读Richter J书的“手动监视和控制对象的生存期”部分。Jeffrey说,有两种方法可以使用GCHandle类控制对象的生存期:
他说,两种方式都可以用来将托管对象传递给非托管代码。他试图解释,开发人员何时应使用GCHandleType.Normal标志调用Alloc。我不太了解有关正常标志用法的解释。在这两种方式中,我们都不允许GC收集对象,这些对象在GC描述符表中具有此类标志,但是在“固定”的情况下,我们还防止此类对象在垃圾收集期间移动。据我了解,在普通模式下,不是直接引用(内存地址)传递给非托管代码,而是传递给GC描述符表的索引。而且,当非托管代码被调用回托管代码时,该索引将被转换为当前/实际地址。我一头雾水,谷歌和微软几乎没有详细信息,只有复制粘贴。
我的问题:
我正在尝试使用Powershell实现我们产品的API.例如,我想创建一个函数Remove-OurProductEntity.此函数应具有两个-ById和-ByFullPath参数来知道要删除的实体.它们不应该是强制性的,而应该只是其中之一.
如果用户在命令行中指定了其中一个,则第二个不得出现在自动完成中,Powershell不应要求用户定义第二个.此外,如果用户同时指定了两者,则函数应该要求定义唯一的一个.
是否可以在Powershell中完成?或者我应该处理函数内部的所有逻辑?Powershell真的有COOL语言,并猜测,应该是类似的东西.