Как я могу отобразить кнопку в DataGridTemplateColumn
, только если ее строка выбрана? Я пробовал это, но, конечно, IsSelected
мне недоступны. Нет смысла иметь свойство IsSelected
для объекта, к которому привязаны строки, и даже в этом случае я бы не хотел, чтобы мне пришлось так сильно связывать свой DataGrid
с моей моделью. Может ли интерфейс справиться с этим сам?
Вот что у меня есть:
<sdk:DataGrid Name="_categorySummaryDataGrid"
MinHeight="200"
ItemsSource="{Binding ElementName=_userControl, Path=CategorySummaries}"
AutoGenerateColumns="False" RowDetailsVisibilityMode="VisibleWhenSelected">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="_nameColumn" Binding="{Binding Path=Name}" Header="Name" Width="Auto" IsReadOnly="True" />
<sdk:DataGridTextColumn x:Name="_descriptionColumn" Binding="{Binding Path=Description}" Header="Description" Width="*" IsReadOnly="True" />
<sdk:DataGridTemplateColumn x:Name="_detailsColumn" Width="Auto">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="..." ToolTipService.ToolTip="View Category Details"
Visibility="{Binding Path=IsSelected, Converter={StaticResource BooleanToVisibility}}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
По соображениям дизайна я хочу, чтобы кнопка отображалась только тогда, когда выбрана содержащая ее строка. И, если возможно, я хочу, чтобы при наведении курсора на строку отображалось по-другому.
Похоже, что у Silverlight и WPF больше ограничений, на которые я надеялся. Я надеюсь, что это возможно. Спасибо. :)
Изменить:
У меня нет и не будет Expression Blend. Спасибо, вот и все.