CommandConverter无法从WPF中的System.String进行转换
本文关键字:String 转换 System 中的 WPF CommandConverter | 更新日期: 2023-09-27 17:58:04
我在使用.NET Framework 4.5 的WPF中出现了奇怪的错误
<Window.CommandBindings>
<CommandBinding Command="ImportExcelCmd" CanExecute="ImportExcelCmd_CanExecute" Executed="ImportExcelCmd_Executed"></CommandBinding>
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Key="I" Modifiers="Control" Command="ImportExcelCmd"></KeyBinding>
</Window.InputBindings>
我收到一个错误,CommandConverter cannot convert from System.String
我的错误在哪里?
我有另一个到ListView的绑定,比如:
<ListView.CommandBindings>
<CommandBinding Command="Delete" CanExecute="Delete_CanExecute" Executed="Delete_Executed"></CommandBinding>
</ListView.CommandBindings>
<ListView.InputBindings>
<KeyBinding Key="Delete" Command="Delete"></KeyBinding>
</ListView.InputBindings>
它是有效的。
如果要使用Custom Routed commands
,则需要使用更详细的定义。
在类中将路由命令声明为static
,然后在XAML中使用x:Static
。您可以在此处参考答案。
为了答案的完整性,我在这里发布了答案的相关代码:
namespace MyApp.Commands
{
public class MyApplicationCommands
{
public static RoutedUICommand ImportExcelCmd
= new RoutedUICommand("Import excel command",
"ImportExcelCmd",
typeof(MyApplicationCommands));
}
}
XAML
<Window x:Class="..."
...
xmlns:commands="clr-namespace:MyApp.Commands">
...
<Window.CommandBindings>
<CommandBinding
Command="{x:Static commands:MyApplicationCommands.ImportExcelCmd}"
CanExecute="ImportExcelCmd_CanExecute"
Executed="ImportExcelCmd_Executed" />
</Window.CommandBindings>