|
1
1
直觉上这感觉不对;不管命令做什么,复制超链接都应该复制文本。但是,您可以通过为命令类实现自己的TypeConverter来解决这个问题( How to Implement a Type Converter |
|
|
2
1
关于ICommand的一个奇妙的描述就在这里 blog entry by SkySigal ,尽管我需要 Google's Cache 因为当时的博客配置问题。不幸的是,本文的结尾讨论了这个问题,但它的措辞有点模棱两可,即ICommand应该是静态的还是非静态的。 an article on dotnet mania talking about how copying a hyperlink with a custom command will crash 申请书。 似乎这个bug至少从2007年就出现在.NET中了,问题是代码显式地检查“已知命令”,正如上面的Reflector分析所示。 .NET希望将命令与其父对象一起序列化,这就是问题所在。本文的解决方案涉及创建一个helper对象,序列化过程将忽略它,序列化过程执行与命令相同的操作。
在myns命名空间的HyperlinkHelper类中使用一些支持代码作为名为Command的属性。这是聪明的诡计,应该是可耻的没有必要的。 |
|
|
3
1
我的头也撞了好一阵子。我本想把这句话作为对沃尔特·斯通伯纳的回答的一个评论,但目前看来,要做到这一点,首先需要更多的要点。 不管怎样。由于原始解决方案的链接似乎已断开,我在谷歌上做了更多的搜索。我现在运行的是.NETFramework版本4,这个问题似乎还没有解决(!) 有一个bug问题发布到微软,再加上这是一个浪费的解决办法,我认为这是一个类似的解决方案所描述的沃尔特Stoneburner。您只需在复制粘贴时使用另一个创建的依赖项属性而不是麻烦的“Command”属性,其余的由helper类处理。你可以从这里下载一个zip,按“显示链接”访问它。感谢Bob Bao发布:
|
|
|
4
0
我只是在一个小的POC中遇到了这个问题,尽管我把它应用到了一个更大的项目中,我设法找到了原因。不知道这是否有帮助,但这里是他的背景和解决方案。
视图:
VIEWMODEL
适配器(然后由datagrid中的一行表示)。中继命令是一个基本的ICommand实现。
System.NotSupportedException未处理 Message=“'CommandConverter'无法将'UnIfied.Module.UI.Client.Adapters.RelayCommand'转换为'System.String'。” Source=“系统” 堆栈跟踪: 位于System.ComponentModel.TypeConverter.GetConvertToException(对象值,类型destinationType) 在System.ComponentModel.TypeConverter.ConvertTo(对象值,类型destinationType) 位于System.Windows.Controls.ContentPresenter.DefaultTemplate.DoDefaultExpansion(TextBlock TextBlock,Object content,ContentPresenter container) (等)
希望这对你们有帮助!
|
|
|
5
0
http://ciintelligence.blogspot.com/2011/11/wpf-copying-hyperlink-with-command.html |