The ICommand interface comes from a different source depending on whether the data source is implemented in C++ or for Microsoft.NET. C++ implements Windows::UI::Xaml::Input::ICommand..NET implements System.Windows.Input.ICommand. Both interfaces have the same template. Which interface you call from your app code is analogous: use Windows::UI::Xaml::Input::ICommand for C++ code and System.Windows.Input.ICommand for.NET code.