4

我有这个 XAML:

<UserControl x:Class="Foo.UserControls.Bar"
             x:Name="FooBar"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <StackPanel>
        <WrapPanel Margin="4,0,0,0">
            <Button Command="{Binding Path=CreateCommand, ElementName=FooBar}">
                <TextBlock>Create</TextBlock>
            </Button>

使用此代码隐藏(已删除usings):

namespace Foo.UserControls
{
    public partial class Bar : UserControl
    {
        public DelegateCommand CreateCommand { get; private set; }

        public Bar()
        {
            InitializeComponent();

            CreateCommand = new DelegateCommand(Create);
        }

        private void Create(object action)
        {
            Console.WriteLine("foo");
        }
    }
}

无论是调试器还是控制台日志,它似乎都不会触发。奇怪的是绑定似乎很好,因为它不会将任何错误记录到输出中。如果我故意破坏绑定,我确实会收到绑定错误,但是使用上面的绑定我没有收到任何错误,但它永远不会触发。

4

1 回答 1

9

试着放CreateCommand = new DelegateCommand(Create);之前InitializeComponent();

于 2012-05-26T16:04:54.907 回答