2012-05-07 25 views
5

Estoy usando MahApps.Metro para lograr la interfaz de usuario Metro en mi aplicación.Sobreescribir estilos en WPF

Tengo una vista de lista y MahApps.Metro está cambiando de estilo para eso. Los estilos de MahApps para listview son here.

Carga de estilos:

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/FineRSS;component/Resources/Icons.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 

necesito hacer un seguimiento de listviewitems seleccionados de modo que estoy usando el siguiente método:

<ListView.ItemContainerStyle> 
       <Style TargetType="{x:Type ListViewItem}"> 
        <Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/> 
       </Style> 
</ListView.ItemContainerStyle> 

Pero el estilo de MahApps.Metro se sobrescribe a incumplimiento del ListView.

¿Qué puedo hacer para mantener los estilos y el enlace IsSelected?

Respuesta

10

No estoy seguro de seguir lo que está tratando de hacer, pero ¿tendría sentido hacer que su Style sea BasedOn la predeterminada que está cargada?

Algo así como

<ListView.ItemContainerStyle> 
    <Style TargetType="{x:Type ListViewItem}" 
      BasedOn="{StaticResource {x:Type ListViewItem}}"> 
     <Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/> 
    </Style> 
</ListView.ItemContainerStyle> 
+0

aunque VS no le gusta la línea BasedOn = "{{x StaticResource: Tipo ListViewItem}}" parece estar funcionando. gracias. – ieaglle

+0

La misma pregunta que tengo. Todavía me estoy acostumbrando a trabajar con XAML. – cubski

Cuestiones relacionadas