public ICommand OpenDialogFile
{
get
{
return new DelegateCommand<RichEditBox>(OpenDialogToAttach);
}
}
Command="{Binding OpenDialogFile}" CommandParameter="{Binding ElementName=TweetEditBox}"
したがって、DeledateCommandはRichEditBoxについて理解しています。私は "非ジェネリック型 'DelegateCommand'は型引数で使用できません
OpenDialogToAttach(RichEditBox editBox)"を使用しています。
どのように解決しますか。私はUWPの開発者です。ここで
はDelegateCommandは、使用しているDelegateCommand
クラスの実装は、あなたがそれに渡すしようとしている一般的な引数をサポートしていません
internal class DelegateCommand : ICommand
{
private readonly Action _execute;
private readonly Func<bool> _canExecute;
/// <summary>
/// Initializes a new instance of the RelayCommand class that
/// can always execute.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <exception cref="ArgumentNullException">If the execute argument is null.</exception>
public DelegateCommand(Action execute)
: this(execute, null)
{
}
/// <summary>
/// Initializes a new instance of the RelayCommand class.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <param name="canExecute">The execution status logic.</param>
/// <exception cref="ArgumentNullException">If the execute argument is null.</exception>
public DelegateCommand(Action execute, Func<bool> canExecute)
{
if (execute == null)
{
throw new ArgumentNullException("execute");
}
_execute = execute;
_canExecute = canExecute;
}
/// <summary>
/// Occurs when changes occur that affect whether the command should execute.
/// </summary>
public event EventHandler CanExecuteChanged;
/// <summary>
/// Raises the <see cref="CanExecuteChanged" /> event.
/// </summary>
[SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate",
Justification = "This cannot be an event")]
public void RaiseCanExecuteChanged()
{
var handler = CanExecuteChanged;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
/// <summary>
/// Defines the method that determines whether the command can execute in its current state.
/// </summary>
/// <param name="parameter">This parameter will always be ignored.</param>
/// <returns>true if this command can be executed; otherwise, false.</returns>
[DebuggerStepThrough]
public bool CanExecute(object parameter)
{
return _canExecute == null ? true : _canExecute();
}
/// <summary>
/// Defines the method to be called when the command is invoked.
/// </summary>
/// <param name="parameter">This parameter will always be ignored.</param>
public void Execute(object parameter)
{
if (CanExecute(parameter))
{
_execute();
}
}
}
DelegateCommandはあなたが使っていますか?翔インポート文 –
'公共DelegateCommandは { (アクションは、のFunc canExecuteを実行する)場合(実行== nullの) { スロー新しい例外ArgumentNullException( "実行します")。 } _execute = execute; _canExecute = canExecute; } ' –
私はコンストラクタを表示していますが、ステートメントは使用していません。だから、これはあなたのクラスです...あなたはその身体を質問に加える必要があります。私はあなたのクラスはgeneric –