我有一个绑定到GridView的项目列表。该列表包含多种类型的数据。我使用ItemTemplateSelector将DataTemplate应用于不同的数据类型,以便它们各自具有独特的外观。
我不知道如何在没有DataTriggers的SubClass1的DataTemplate中移除悬停在GridViewItem效果上。
public class Base
{
public string Name {get;set;}
}
public class SubClass1 : Base
{
}
public class SubClass2 : Base
{
}
public PageViewModel : ViewModelBase
{
public List<Base> ListOfBases {get;set;}
}
<GridView
x:Name="baseGridView"
ItemsSource="{Binding ListOfBases}"
ItemTemplateSelector="{StaticResource itemsTemplateSelector}"
SelectionMode="Multiple"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
>
<DataTemplate x:Key="SubClass1Template">
<Grid Margin="0" Width="346" VerticalAlignment="Stretch" >
<TextBlock Grid.Column="0" Text="{Binding Name}" />
</Grid>
</DataTemplate>
答案 0 :(得分:4)
您需要编辑GridViewItem的VisualState样式。要执行此操作,请在VisualStudio或Blend中右键单击GridView。在“设计”视图或“文档”大纲中执行此操作。选择编辑其他模板 - &gt;编辑生成的项容器(ItemContainerStyle) - &gt;编辑副本
如果要完全删除它,请删除PointerOver状态中的元素
<VisualState x:Name="PointerOver"/>
您也可以使用它来对其进行任何更改。也许你不喜欢默认的悬停颜色,但是像其他颜色一样,这里你可以进行这些更改。
更新基于评论
要仅为某个类设置悬停样式,请将用于悬停样式的控件的可见性(例如:边框)设置为直接绑定到类。然后,ValueConverter将根据类的类型返回Visible或Collapsed