Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 在DataGridTemplateColumn中使用EventTriggers_Silverlight_Datagridtemplatecolumn - Fatal编程技术网

Silverlight 在DataGridTemplateColumn中使用EventTriggers

Silverlight 在DataGridTemplateColumn中使用EventTriggers,silverlight,datagridtemplatecolumn,Silverlight,Datagridtemplatecolumn,我使用的是Silverlight 5,在视图中,我有一个按钮,当单击该按钮时,会加载特定的状态。这是使用EventTrigger和GoToStateAction标记完成的,如下所示: <Button x:Name="..." Content="..."> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:GoToStateActi

我使用的是Silverlight 5,在视图中,我有一个按钮,当单击该按钮时,会加载特定的状态。这是使用EventTrigger和GoToStateAction标记完成的,如下所示:

<Button x:Name="..." Content="...">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <ei:GoToStateAction StateName="MyState"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>

上面的操作非常顺利,但是如果我将按钮移动到DataGridTemplateColumn中,它将不再工作。具体来说,应用程序编译时不会出错,DataGrid会在列中显示按钮,但当我单击按钮时,状态不会转换为

<data:DataGrid ...>
    <data:DataGrid.Columns>
        <data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Button x:Name="..." Content="...">
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="Click">
                                <ei:GoToStateAction StateName="MyState"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </Button>
                </DataTemplate>
            </data:DataGridTemplateColumn.CellTemplate>
        </data:DataGridTemplateColumn>
    </data:DataGrid.Columns>
</data:DataGrid>

DataGridTemplateColumn中不可能有EventTriggers吗?或者我需要使用其他语法声明它们吗

感谢

引用声明,如果未指定目标,它将在可视化树上遍历,并在找到的第一个定义状态的元素上应用状态更改。在第二种情况下,我相信DataGrid可视树的某些元素(单元格、行等)可能会在用户控件之前被考虑在内,因此您看到的行为就是这样

由于您使用的是Silverlight 5,因此可以尝试使用具有UserControl类型祖先外观的绑定将操作的属性设置为所需的控件

<ei:GoToStateAction StateName="MyState" TargetObject="{Binding RelativeSource={RelativeSource AncestorType=UserControl}}"/>