我在我的应用程序中有一个DataGrid,它有一个带有文本块和一个按钮的已定义CellTemplate的列。Silverlight中DataTemplate元素的故事板
我想仅在悬停此特定单元格时显示按钮。我怎样才能做到这一点?
在此先感谢。
我在我的应用程序中有一个DataGrid,它有一个带有文本块和一个按钮的已定义CellTemplate的列。Silverlight中DataTemplate元素的故事板
我想仅在悬停此特定单元格时显示按钮。我怎样才能做到这一点?
在此先感谢。
这可能是可能是为了脚本分镜模板引用其他模板项目,但我会太惊恐如果创建单元格的内容为用户控件(与文本框来尝试这种方式:)
和按钮),那么动画故事板就可以轻松地为那个控件创作,并通过附加的ControlStoryboardAction行为运行(如果需要示例,我可以在几分钟内掀起一个控件)。
文本框等的控件属性需要公开这两个值和更改(例如通过将它们实现为INotifyPropertyChanged属性或甚至DependencyProperties),但是您可以简单地将CellTemplate绑定到子控件而不是TextBox。
希望这会有所帮助。
这是一个使用触发器的解决方案。
<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中不存在。 – Walkor 2010-09-15 07:25:36
我认为你是对的,我会用适当的故事板进行控制。 – Walkor 2010-09-15 07:26:12