為建立中文知識(shí)庫(kù)加塊磚 ——中科大胡不歸
0. 前言
使用 WPF 久了,遲早會(huì)遇上:使用代碼將 CheckBox 的 IsChecked 設(shè)置為 true,發(fā)現(xiàn)綁定的Command沒有觸發(fā)的問題。
1. 代碼模擬點(diǎn)擊事件
對(duì)于按鈕可以使用下面的方法實(shí)現(xiàn)代碼模擬點(diǎn)擊事件。
方法一
ButtonAutomationPeer peer = new ButtonAutomationPeer(someButton);
IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProv.Invoke();
方法二
someButton.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
然而似乎并不適用CheckBox的情況,所以使用下面的辦法直接觸發(fā)Command。
2. 代碼觸發(fā)綁定的Command
someButton.Command.Execute(someButton.CommandParameter);