好的,希望这很简单,但由于某种原因,我找不到一个直接的答案,我对WPF还不熟悉,但还不知道该怎么做.
我有一个listview,它被绑定到要显示的可观察对象集合.我想要一个带有一堆选项的上下文菜单.上下文菜单中的选项与列表中单击的特定对象(删除,导出等)相关.
所以我需要用户在listview中右键单击的对象作为参数传递给上下文菜单执行的命令.
我该怎么做呢?
编辑:我应该提到我更喜欢一个大多数(如果不是完全)xaml的解决方案 - 我试图避免在代码隐藏中使用重要的代码.如果这是唯一的方法,但...
进一步编辑:我忘记提及的更多细节很重要.我想要执行的命令是绑定到我的用户控件的数据上下文的对象,它不在列表视图中的对象上.因此,我需要将列表视图中的上下文菜单绑定到用户控件的数据上下文中的命令,并将listview项作为参数传递到该命令中.
我有一个我正在使用的第三方代码库; 此库的一部分是一个winforms应用程序,用于编辑此库使用的配置文件.我想将他们的配置编辑器应用程序嵌入到我的应用程序中.
我有他们的库的源代码和配置编辑器(据我所知)使用标准控件的直接Winforms应用程序.我正在尝试将应用程序的主窗体转换为UserControl,以便我可以在我的应用程序中托管它,这是WPF(WPF的WindowsFormsHost不会托管Form对象,我得到一个例外).
我将表单对象更改为继承UserControl而不是Form并修复了所有编译器错误(没有很多,只是在UserControls上不存在的属性初始化)但是发生的事情是我新转换的控件只是空白.
当我运行我的测试应用程序时,我没有看到构成原始表单的任何控件,只是一个空白页面.
有任何想法吗?我真的不想从头开始重新实现他们的应用程序,这会很糟糕.
编辑:我忘了提到我在WinForms应用程序中测试它,而不是WPF,只是在尝试从WPF使用它之前让控件正常工作.
我们正在升级到vs2k12和.net 4.5,所以我正在完成构建过程并让我们的CI服务器上的所有内容再次运行,但我遇到了一些困难.
以下是事情应该如何运作:
我们有一个包含两个Web项目的解决方案文件,在开发人员计算机上这些是"就地"编译(输出未重定向),IIS指向相应的项目文件夹进行开发和测试,这部分很好.
在我们的构建机器上,我们需要将每个Web应用程序(2)的输出重定向到我们的安装程序打包的单独文件夹中,这是我遇到困难的地方.发生的事情是其中一个Web项目内容最终在其他Web项目文件夹中,覆盖了Global.aspx和web.config等文件,因为每个项目都有自己的.
我们曾经使用Web部署项目来实现这一点,但现在它们已被弃用,所以我试图使用msbuild的web发布机制/配置文件,但我基本上已经丢失了.
我试过这里提到的东西:
我必须遗漏一些简单的东西,因为我所要做的就是文件系统副本,没有花哨的schmancy发布到某些网络服务器魔术.
目前,我正在从我的nant构建脚本中调用sln文件中的msbuild,如下所示:
<msbuild project="${root.dir}\WebPortal\WebPortal ExtJS\WebPortal ExtJS.sln" verbosity="${tools.dotnet.msbuild.verbosity}">
<property name="Configuration" value="${msbuild.configuration}" />
<property name="OutputPath" value="${project.builddir}" />
<property name="DeployOnBuild" value="true" />
<property name="DeployTarget" value="PipelinePreDeployCopyAllFilesToOneFolder " />
<property name="WebPublishMethod" value="FileSystem" />
<property name="publishUrl" value="${project.builddir}" />
<property name="DeleteExistingFiles" value="true" />
<property name="DebugSymbols" value="${msbuild.debugSymbols}" />
<property name="DebugType" value="${msbuild.debugType}" />
</msbuild>
Run Code Online (Sandbox Code Playgroud)
当从同一个解决方案文件构建时,我需要对每个Web项目做些什么才能使输出正确重定向?我认为只需设置输出文件夹中的每个具体的csproj,但也改变一个地方的开发机,我想避免,如果可能的话,保留的路径简单/不易混淆/清洁器在编译时输出变.
我们最近将所有项目升级到Visual Studio 2012和.Net 4.5.我们的大多数项目都有自定义MMC管理单元来处理产品配置.我现在已经知道MMC 3.0本身并不处理.Net 4.0运行时,因为运行时MMC 3.0发布后运行时间很长.
我正在寻找一种方法来修复我们的管理单元,以便MMC在加载时不会崩溃,而且我遇到了许多提及添加mmc.exe.config文件的页面.我试过这个,我无法让它发挥作用.
我创建了一个文件,其内容如下:
<configuration>
<startup>
<supportedRuntime version='v4.0.20506' />
<requiredRuntime version='v4.0.20506' safemode='true' />
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我已将其保存为windows\system32和windows\sysWOW64目录中的mmc.exe.config,但此文件的存在没有区别.我的snapins仍然崩溃,并显示相同的错误消息:
Could not load file or assembly 'xxxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d62dabb4275ffafc' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Run Code Online (Sandbox Code Playgroud)
我需要做些什么才能让MMC正确加载.Net 4.0运行时程序集?
我需要以编程方式从VBA中填写Excel 2007文件中工作表上的组合框的内容.从一些研究看来,这似乎不能通过"表单控件"完成,我必须使用组合框的ActiveX版本.
这一切都很好,除了Excel中的Developer选项卡的Insert菜单,我可以添加的唯一控件是表单版本.所有的ActiveX控件都是灰色的,我无法弄清楚原因.
我错过了什么?宏已启用.我检查了ActiveX安全设置并将其设置为启用所有内容.是否有一些默认情况下未安装的加载项?