代码之家  ›  专栏  ›  技术社区  ›  Justin XL

为什么触发器在代码隐藏(Silverlight)中为空?

  •  1
  • Justin XL  · 技术社区  · 15 年前

    我在XAML中创建了一个触发器,它工作正常。但是,当我想要访问它后面代码中的一个属性时,它总是给我一个空值。

    有人知道为什么吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Jason Rowe    15 年前

    听起来您引用的是类而不是实例化的触发器。

    看看这个 example . 它显示访问C中的触发器。也许这会让你找到正确的方向。

    需要帮助的代码如下:

    System.Windows.Interactivity.Interaction.GetTriggers
    

    或者你可以这样做:

    var triggers = this.Element.Triggers;
    

    下面是一个小例子。将事件触发器添加到名为text box invoker的文本框中。

        <TextBox x:Name="TextBoxInvoker" Height="33" HorizontalAlignment="Left" VerticalAlignment="Top" Width="123" Text="TextBox" TextWrapping="Wrap">
            <interaction:Interaction.Triggers>
                <interaction:EventTrigger EventName="KeyDown" >
                    <behavior:TextBoxEnterButtonInvoke TargetName="TargetedButton" />
                </interaction:EventTrigger>
            </interaction:Interaction.Triggers> 
        </TextBox>
    

    然后,要通过代码访问触发器,可以执行以下操作。这将获取附加到元素的触发器集合。

    var triggerCollection = System.Windows.Interactivity.Interaction.GetTriggers(TextBoxInvoker);
    

    var triggers = this.TextBoxInvoker.Triggers;