小编tri*_*kbz的帖子

WPF:以MVVM方式逐步教程绑定TreeView

看下一篇文章.原始的一个问题内容已被删除,因为没有任何意义.简单地说,我问过如何使用MVVM方式的XmlDataProvider将XML(我在解析DLL程序集时错误生成)绑定到TreeView.但后来我明白这种方法是错误的,我转而生成数据实体模型(只编写表示我想在树中公开的所有实体的类)而不是XML.

那么,结果在下一篇文章中.目前我不时更新这篇"文章",所以F5和

享受阅读!

wpf treeview xaml binding mvvm

9
推荐指数
1
解决办法
2万
查看次数

WPF:添加命令以通过绑定菜单项自动生成

使用MVVM.我创建了单独的菜单'Recent files',它从绑定中获取其项目.它看起来像这样:

在此输入图像描述

        <MenuItem Header="_Recent files" ItemsSource="{Binding RecentFiles, Converter={StaticResource RecentFilesToListOfStringsConverter}, Mode=OneWay}" >
        </MenuItem>
Run Code Online (Sandbox Code Playgroud)

现在,我想为每个自动生成的项添加Command,它应该获取路径作为命令参数并通过单击执行导入文件操作.

能否请您建议如何以MVVM方式完成?

wpf binding command mvvm

9
推荐指数
1
解决办法
6265
查看次数

GCHandle:何时显式使用GCHandleType.Normal?

阅读Richter J书的“手动监视和控制对象的生存期”部分。Jeffrey说,有两种方法可以使用GCHandle类控制对象的生存期:

  • 使用GCHandleType.Normal调用Alloc方法(即使应用程序代码中可能没有引用,GC也无法删除obj )
  • 使用GCHandleType.Pinned调用Alloc方法(除“普通”之外,GC无法移动此类对象)

他说,两种方式都可以用来将托管对象传递给非托管代码。他试图解释,开发人员何时应使用GCHandleType.Normal标志调用Alloc。我不太了解有关正常标志用法的解释。在这两种方式中,我们都不允许GC收集对象,这些对象在GC描述符表中具有此类标志,但是在“固定”的情况下,我们还防止此类对象在垃圾收集期间移动。据我了解,在普通模式下,不是直接引用(内存地址)传递给非托管代码,而是传递给GC描述符表的索引。而且,当非托管代码被调用回托管代码时,该索引将被转换为当前/实际地址。我一头雾水,谷歌和微软几乎没有详细信息,只有复制粘贴。

我的问题:

  1. 一些应用程序根(不是弱根)引用托管堆中的对象,并且不再有根。这是否意味着GC描述符表中的相应条目将带有GCHandleType.Normal标志?由于Jeffrey说,看起来好像没有,“即使应用程序代码中可能没有引用,GC也无法删除obj ”。但是,如果否,此表项将具有哪个标志?同样,MyClass mc = new MyClass(),GC描述符表中mc的相应条目是否具有Normal标志,如果没有,那么该使用哪个?
  2. 什么时候(以及如何,请短代码)开发人员真正需要使用GCHandleType.Normal标志?固定对我来说更清楚。

c# garbage-collection

5
推荐指数
2
解决办法
1214
查看次数

Powershell:第一个已定义时隐藏第二个函数参数

我正在尝试使用Powershell实现我们产品的API.例如,我想创建一个函数Remove-OurProductEntity.此函数应具有两个-ById-ByFullPath参数来知道要删除的实体.它们不应该是强制性的,而应该只是其中之一.

如果用户在命令行中指定了其中一个,则第二个不得出现在自动完成中,Powershell不应要求用户定义第二个.此外,如果用户同时指定了两者,则函数应该要求定义唯一的一个.

是否可以在Powershell中完成?或者我应该处理函数内部的所有逻辑?Powershell真的有COOL语言,并猜测,应该是类似的东西.

powershell

2
推荐指数
1
解决办法
97
查看次数

标签 统计

binding ×2

mvvm ×2

wpf ×2

c# ×1

command ×1

garbage-collection ×1

powershell ×1

treeview ×1

xaml ×1