依赖项 属性 GetValue returns 空

Dependency Property GetValue returns null

我在我的 XAML 中声明了一个自定义 TriggerAction 并且我将命令绑定到它。

<DataTemplate x:Key="data">
        <StackPanel Orientation="Vertical">
            <TextBlock Text="{Binding Name}"/>
            <TextBox Width="150" Name="styleTb">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="TextChanged">
                        <behaviors:TextChangedTrigger TextChangedCommand="{Binding TextChangedCommand}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </TextBox>
        </StackPanel>
    </DataTemplate>

但是当我尝试通过 GetValue 方法获取值时,它 returns null.

这就是 class 的样子

public class TextChangedTrigger : TriggerAction<TextBox>
{
    public static readonly DependencyProperty TextChangedCommandProperty = DependencyProperty.Register("TextChangedCommand", typeof(ICommand),
                                                                                                        typeof(TextChangedTrigger));

    /// <summary>
    /// Gets the Command which will be executed.
    /// </summary>
    public  ICommand TextChangedCommand
    {
        get { return (ICommand)GetValue(TextChangedCommandProperty); }
        set { SetValue(TextChangedCommandProperty, value); }
    }

    /// <summary>
    /// Invokes the TextChangedCommand
    /// </summary>
    /// <param name="parameter"></param>
    protected override void Invoke(object parameter)
    {
        object test = GetValue(TextChangedCommandProperty); // Returns null
    }

为什么 return 为空?

您实际上从未将 TextChangedCommand 属性 的值设置为任何值。

在 TextChangedTrigger class 的构造函数中为它设置一些值,或者使用允许设置默认值的 DependencyProperty.Register 重载。

public static readonly DependencyProperty TextChangedCommandProperty = DependencyProperty.Register("TextChangedCommand",
    typeof(ICommand),
    typeof(TextChangedTrigger),
    new UIPropertyMetadata(new WhateverYourCommandIs());