何が原因なのかまったくわかりません。
背景: Prism フレームワークの使用
- 私はにバインドされたボタンを持っています
DelegateCommand
- 電話する
RaiseCanExecuteChanged
Visual Studio でデバッグ モードでアプリを起動すると、すべてが完全に機能します。アプリは完璧に動作します。
その後、.exe 経由でアプリを開くと、RaiseCanExecuteChanged
メソッドが呼び出されていません。なぜそうなるのか、私にはわかりません。他の誰かが同様の問題に遭遇しますか?
編集: .exe を介して最初にアプリを開くと、RaiseCanExecuteChanged
が呼び出されます (私のコンストラクターで設定したためViewModel
)。ただし、再度呼び出されることはありません。
必要な場合のコード:
private readonly DelegateCommand _buttonCommand;
public ViewModel()
{
_buttonCommand = new DelegateCommand(Button, CanExecuteButton);
}
public DelegateCommand ButtonCommand
{
get { return this._buttonCommand; }
}
public void Button()
{
... do stuff ...
_buttonCommand.RaiseCanExecuteChanged();
}
public bool CanExecuteButton()
{
if (some condition)
return true;
else
return false;
}
<Button x:Name="MyButton" Content="ClickMe"
Command="{Binding ButtonCommand}">
IsEnabled
私は必死になって、バインドしたボタンにプロパティを入れようとしましたCanExecuteButton
が、役に立ちませんでした。