我是WPF的新手,並且正在通過.net 4.5中專業WPF的示例。在命令章節中,有一個示例,其中多個控件可以發送相同的命令。我正在使用Button,CheckBox和MenuItem來觸發New命令。WPF:「ApplicationCommands.New」在MenuItem的情況下顯示不正確的源碼
我面臨的問題是,如果MenuItem第一次被按下,源顯示正確。但是,單擊按鈕或複選框後,單擊MenuItem會顯示最後一個控件Button或CheckBox的來源,無論按下哪個按鈕。我找不到我的代碼出了什麼問題,或者爲什麼WPF中的MenuItem顯示此行爲。
以下是代碼。
<Window x:Class="WpfApplication1.CommandSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CommandSample" Height="300" Width="300">
<Window.CommandBindings>
<CommandBinding Command="New" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<StackPanel>
<Button Command="New" MaxWidth="80" MaxHeight="30" Content="{x:Static ApplicationCommands.New}" />
<Menu MaxHeight="30" VerticalAlignment="Top">
<MenuItem Header="File">
<MenuItem Command="New"></MenuItem>
</MenuItem>
</Menu>
<CheckBox Command="New"></CheckBox>
</StackPanel>
</Window>
namespace WpfApplication1 {
public partial class CommandSample: Window {
public CommandSample() {
InitializeComponent();
}
private void CommandBinding_Executed(object sender,ExecutedRoutedEventArgs e)
{
MessageBox.Show("New Command launched by " + e.Source);
}
}
}
太好了,非常感謝您的詳細解釋。這解釋了它。 – SajidQ 2013-04-26 17:02:04
我想給+1,但我是新的,沒有15個代表,所以它不會允許我。但是一旦我達到這個標記,我肯定會:) – SajidQ 2013-04-26 17:13:03