我在我的應用程序中有一個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