我有这个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>
使用此代码隐藏(已删除using
s):
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");
}
}
}
使用调试器和控制台日志记录,它似乎永远不会触发。奇怪的是,绑定似乎很好,因为它不会将任何错误记录到输出中。如果我故意破坏绑定,我会得到一个绑定错误,但是使用上面的绑定我没有得到任何错误但它永远不会触发。
答案 0 :(得分:8)
尝试在CreateCommand = new DelegateCommand(Create);
InitializeComponent();