我正在嘗試做一些非常簡單和基本的事情。糾正我,如果我錯了:WPF中的禁用按鈕
想想一個簡單的按鈕,然後關聯它的方法如下。但是,我越來越如果我改變對DrawShapeCanExecute返回類型要麼沒有(被禁用按鈕)(),那麼我會得到一個錯誤消息:
布爾WpfApplication8.DrawingCanvas.DrawShapeCanExecute(對象,System.Windows。 Input.CanExecuteRoutedEventArgs)」有錯誤的返回類型
public static RoutedCommand DrawShape = new RoutedCommand();
private void DrawShapeCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
} **//Isn't this enough to make it enable?**
private void DrawShape_Executed(object sender, ExecutedRoutedEventArgs e)
{
}
其XAML部分有:
<Button Margin="0,2,2,2" Width="70" Content="Line"
Command="{x:Static local:DrawingCanvas.DrawShape}"
CommandTarget="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}}, Path=DrawingTarget}"
CommandParameter="Line">
</Button>
如果你的意思是同時使用e.CanExecute = true和e.Handled = ture ...是的,但它是不行的。 –
@amitkohan,你是否嘗試在事件處理程序中放置一個斷點來檢查它是否被調用? –
好問題!是的,我在'this.CommandBindings.Add(新的CommandBinding(DrawingCanvas.DrawShape,DrawShape_Executed,DrawShapeCanExecute))上放置了一個斷點;'這裏發生的事情是,當我將鼠標懸停在** DrawShapeCanExecute **上時,它的提示顯示了這條消息: DrawShapeCanExecute(...)具有錯誤的返回類型 –