3

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>
4

1 に答える 1

4

GridViewItemのVisualStateスタイルを編集する必要があります。これを行うには、VisualStudioまたはBlend内のGridViewを右クリックします。これは、デザインビューまたはドキュメントのアウトライン内で行います。[追加テンプレートの編集]->[生成されたアイテムコンテナの編集(ItemContainerStyle)]->[コピーの編集]を選択します

完全に削除する場合は、PointerOver状態の要素を削除します

<VisualState x:Name="PointerOver"/>

これを使用して、変更を加えることもできます。デフォルトのホバーカラーが気に入らないかもしれませんが、別の色と同じように、ここでこれらの変更を行います。

コメントに基づく更新

特定のクラスのホバースタイルのみを使用するには、ホバースタイルに使用されるコントロールの可視性(例:境界線)をクラスに直接バインドするように設定します。次に、ValueConverterは、クラスのタイプに基づいてVisibleまたはCollapsedを返します。

于 2012-11-14T00:08:54.987 に答える