我絕對有沒有想法是什麼造成這種情況。RaiseCanExecuteChanged不工作在編譯的exe但在調試時工作
背景:使用Prism框架
- 我有一個按鈕綁定到
DelegateCommand
- 我打電話
RaiseCanExecuteChanged
當我在Visual啓動應用程序在調試模式下工作室,一切正常完美。該應用程序運行完美。
當我通過.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
...無濟於事。
你可以發佈你的'ButtonCommand'的代碼? –
解決了,但我不知道爲什麼。它現在正在工作... – Bryant