Je voudrais utiliser la méthode ScrollToVerticalOffset d'un ScrollViewer pour aller en haut du scrollviewer.ScrollViewer et ScrollToVerticalOffset avec mvvm
Mais avec une approche MVVM.
Je pense que je dois créer une propriété de dépendance pour prendre ce comportement.
EDIT: Le comportement est:
public class ScrollPositionBehavior : Behavior<FrameworkElement>
{
public double Position
{
get { return (double)GetValue(PositionProperty); }
set { SetValue(PositionProperty, value); }
}
public static readonly DependencyProperty PositionProperty = DependencyProperty.Register("Position", typeof(double), typeof(ScrollPositionBehavior), new PropertyMetadata((double)0, new PropertyChangedCallback(OnPositionChanged)));
protected override void OnAttached()
{
base.OnAttached();
}
private static void OnPositionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
ScrollPositionBehavior behavior = d as ScrollPositionBehavior;
double value = (double)e.NewValue;
((ScrollViewer)(behavior.AssociatedObject)).ScrollToVerticalOffset(value);
}
protected override void OnDetaching()
{
base.OnDetaching();
}
}
utilisé comme:
<ScrollViewer>
<Interactivity:Interaction.Behaviors>
<fxBehavior:ScrollPositionBehavior Position="{Binding Position}" />
</Interactivity:Interaction.Behaviors>
<other things ...>
</ScrollViewer>
avec
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:fxBehavior="clr-namespace:MyNamespace.Behavior;assembly=MyAssembly"
J'ai une exception XAML de l'analyseur:
c'est un : AG_E_PARSER_BAD_PROPERTY_VALUE
Notez que j'utilise le comportement basé sur un FrameworkElement, car j'utilise silverlight 3 (en fait, c'est SL pour WP7). J'ai vu que la liaison ne devrait fonctionner que pour FrameworkElement.
Merci d'avance pour votre aide
merci pour votre aide, j'ai maintenant une exception parser xaml – Tim
S'il vous plaît être plus précis - XamlParseException signifie qu'il y a une erreur sur votre code XAML. – robertos
merci pour votre réponse, voir les éditions – Tim