【问题标题】:Storyboard for a DataTemplate element in SilverlightSilverlight 中 DataTemplate 元素的情节提要
【发布时间】:2010-09-15 00:03:51
【问题描述】:

我的应用程序中有一个 DataGrid,它有一个定义了 CellTemplate 的列,其中有一个文本块和一个按钮。

我只想在悬停此特定单元格时显示按钮。我怎样才能做到这一点?

提前致谢。

【问题讨论】:

    标签: silverlight datatemplate storyboard


    【解决方案1】:

    可能会编写一个引用其他模板项目的模板故事板脚本,但我会害怕那样尝试:)

    如果您将单元格内容创建为用户控件(带有文本框和按钮),则可以轻松地为该控件创建动画故事板并通过附加的 ControlStoryboardAction 行为运行(如果您需要,我可以在几分钟内完成一个示例)。

    文本框等的控件属性需要公开值和更改(例如,通过将它们实现为 INotifyPropertyChanged 属性甚至 DependencyProperties),但是您可以简单地将 CellTemplate 绑定到子控件而不是 TextBox。

    希望这会有所帮助。

    【讨论】:

    • 我认为你是对的,我会用适当的故事板来控制。
    【解决方案2】:

    这是一个使用触发器的解决方案。

    <DataGrid>
        <DataGrid.Items>
            <System:String>hello</System:String>
            <System:String>world</System:String>
        </DataGrid.Items>
    
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid x:Name="MyGrid" Background="Transparent">
                            <StackPanel>
                                <TextBlock Text="{Binding}"/>
                                <Button x:Name="MyButton" Visibility="Hidden" Content="{Binding}"/>
                            </StackPanel>
                        </Grid>
    
                        <DataTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True" SourceName="MyGrid">
                                <Trigger.Setters>
                                    <Setter TargetName="MyButton" Property="Visibility" Value="Visible"/>
                                </Trigger.Setters>
                            </Trigger>
                        </DataTemplate.Triggers>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
    

    【讨论】:

    • Silverlight 中不存在触发器。
    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2010-11-29
    • 2017-05-27
    • 2014-04-16
    • 2021-05-24
    相关资源
    最近更新 更多