Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定的默认值转换器_C#_Wpf_Data Binding_Default_Converter - Fatal编程技术网

C# 绑定的默认值转换器

C# 绑定的默认值转换器,c#,wpf,data-binding,default,converter,C#,Wpf,Data Binding,Default,Converter,有没有办法让WPF自动将转换器应用于特定类型的所有绑定 我看到了,但它涵盖了另一种情况(本地化),因此没有令人满意的答案 我的问题是:我的模型类包含命令,我想将其绑定到WPF命令。由于模型类是独立于工具箱的,因此我无法在那里实现WPF的ICommand。相反,我有一个CommandConverter,它将CommandModels包装到WPFICommands中: <Button Command="{Binding MyCommand, Converter={StaticResource

有没有办法让WPF自动将
转换器应用于特定类型的所有绑定

我看到了,但它涵盖了另一种情况(本地化),因此没有令人满意的答案

我的问题是:我的模型类包含
命令
,我想将其绑定到WPF命令。由于模型类是独立于工具箱的,因此我无法在那里实现WPF的ICommand。相反,我有一个
CommandConverter
,它将
CommandModel
s包装到WPF
ICommand
s中:

<Button Command="{Binding MyCommand, Converter={StaticResource CommandConverter}}" />

这非常有效,只是很容易忘记
转换器=
,而且WPF没有给出绑定失败的任何指示


我现在的问题是:是否有可能强制WPF始终对特定类型的绑定应用转换器?或者,当命令绑定失败时,如何让WPF给我正确的错误?

检查调试输出窗口。通常情况下,您会在那里看到绑定错误。

我认为,如果没有子分类按钮(您可能不想这样做),或者定义自己的附加属性并在其上使用TypeConverter属性,您就无法看到


如果您想通过新附加属性的TypeConverter属性使用默认转换器,可以查看Rob Relyea的信息帖子或MSDN。

虽然我从未这样做过,但是否可以定义自定义标记扩展?这将导致将值发送到实现标记扩展的类,然后从该类返回
命令
属性所需的
ICommand


正如我所说,我从来没有自己创建过一个,但a似乎提出了一些关于如何创建的文章。

从第一篇文章来看,似乎不需要将该属性作为附加属性。不管怎样,我会试试看,然后回来汇报!实际上,TypeConverter似乎只用于将(XAML-)字符串转换为实际的属性值。糟透了,有意思的主意。虽然这只是将问题从必须记住使用转换器转移到必须记住使用自定义标记扩展。是的,但希望标记扩展的语法比您上面发布的更小-如果没有其他好处的话,这是一个小小的收获。