2010-04-11 21 views

Respuesta

13

usted puede hacerlo usando un estilo en el propio cuadro de lista que afecta a todos sus elementos:

<ListBox.Resources> 
    <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding IsMouseOver,RelativeSource={RelativeSource Self}}" 
         Value="True"> 
       <Setter Property="IsSelected" Value="True" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</ListBox.Resources> 

Eso establezca la propiedad IsSelected en el elemento para cierto cuando la propiedad IsMouseOver es cierto. Siempre que su ListBox no sea multiselección, funciona de la manera que usted esperaría.

+0

Funciona bien. Curiosamente, cuando I datos se unen a SelectedItem y el elemento al que se une tiene un valor de antemano que el mouse sobre no seleccionará ese elemento (si te vas y vuelves). ¿Algunas ideas? –

+0

Eso es bastante extraño. Fuera del interés, intente agregar un setter para establecer IsSelected a falso en el estilo (fuera del disparador). –

+0

No, no lo arregla. Puedo evitarlo (al no tener ninguno seleccionado al inicio), pero es algo que no me importaría descubrir. –

Cuestiones relacionadas