昨日の WP2W8 ロンドン イベントで、既存の WP7 カスタム コントロールを WinRT (5 月 31 日リリース候補版) に移植しようとしました。
このカスタム コントロールには、次のように宣言されたプロパティがありました。
public IMvxCommand Command
{
get { return (IMvxCommand)GetValue(CommandProperty); }
set { SetValue(CommandProperty, value); }
}
public static readonly DependencyProperty CommandProperty =
DependencyProperty.Register("Command", typeof(IMvxCommand), typeof(IconWithTextMenuItem), new PropertyMetadata(null));
private void OnTap(object sender, CantRememberExactEventArgs e)
{
if (Command == null)
return;
if (CommandParameter != null)
Command.Execute(CommandParameter);
else
Command.Execute();
}
何を試しても、これをバインドできませんでした-出力ウィンドウのデバッグバインディングエラーは、バインディングが型MvxRelayCommand
をに変換できないことを常に報告しましたIMvxCommand
ただし、IMvxCommand
toMvxRelayCommand
またはICommand
then を変更すると、バインディングは機能しました。
ここの継承ツリーはMvxRelayCommand
inherits from IMvxCommand
inherits fromでしSystem.Windows.Input.ICommand
たが、WinRT がICommand
バックグラウンドでファンキーなタイプのリダイレクトを行っているのではないかと思います。
WinRT カスタム コントロールで依存関係プロパティを使用できるかどうIMvxCommand
かについて、誰かが洞察を持っていますか?ICommand
更新 - サンプル プロジェクトは次のとおりです: https://github.com/slodge/WinRTInterfaceBindingProblem